这是我React JS应用程序的一部分代码片段:
在我的表单中,当我按下提交按钮时,
<form className="rcw-sender" onKeyDown={(e)=> e.keyCode == 13 ? {sendMessage}: ''} onSubmit={sendMessage}>
{this.state.active && <Container>
<EmojiPicker />
</Container>}
<button className="rcw-send" onClick={activateEmoji}>
<img src={emojibutton} className="rcw-send-icon" alt="send" />
</button>
<button className="rcw-send" onClick={activateMenu}>
<img src={menubutton} className="rcw-send-icon" alt="send" />
</button>
<input type="text" className="rcw-new-message" name="message" placeholder={placeholder} disabled={disabledInput}
autoFocus={autofocus} autoComplete="off" ref={this.input} />
<button type="submit" className="rcw-send">
<img src={send} className="rcw-send-icon" alt="send" />
</button>
</form>
在我的表单中,当我按下提交按钮时,
onSubmit={sendMessage}
会被调用,这方面的效果非常好。但是,我希望在按下回车键提交表单时也能调用同样的sendMessage
方法。为了实现这一点,我写了以下代码:onKeyDown={(e)=> e.keyCode == 13 ? {sendMessage}: ''}
。我希望在按下回车键时能够调用sendMessage
方法,但事实证明它似乎没有起作用。我之所以要这样做,是因为我的应用程序中有一个表情选择器,在通过按下回车键提交表单时,将会弹出表情选择器。因此,为了解决这个问题,我希望在按下回车键提交表单时调用sendMessage
方法。使用提交按钮提交表单不会切换表情选择器的状态。因此,为了快速解决问题,我希望在按下回车键时调用sendMessage
方法。请问如何实现?
type="submit"
,在文本输入框中按下 Enter 键会触发submit
事件,因此可能会调用第一个按钮的onClick
处理程序... 如果您将显式的type="button"
添加到前两个按钮中,问题是否仍然存在? - Aprillione.key === "Enter"
更易读且不像 e.keyCode 一样被弃用。 - Aprillion