Aqui está meu formulário e o método onClick. Gostaria de executar este método quando o botão Enter do teclado for pressionado. Como ?
NB: Nenhum jquery é apreciado.
comment: function (e) {
e.preventDefault();
this.props.comment({comment: this.refs.text.getDOMNode().value, userPostId:this.refs.userPostId.getDOMNode().value})
},
<form className="commentForm">
<textarea rows="2" cols="110" placeholder="****Comment Here****" ref="text" /><br />
<input type="text" placeholder="userPostId" ref="userPostId" /> <br />
<button type="button" className="btn btn-success" onClick={this.comment}>Comment</button>
</form>
reactjs
reactjs-flux
Istiak Morsalin
fonte
fonte
onCommentSubmit
, você também deve chamarevent.preventDefault()
eevent.stopPropagation()
para evitar que o formulário recarregue a página (já que é um formulário com umaction
atributo em branco provavelmente)action='#'
atributo para oform
elemento.Use o
keydown
evento para fazer isso:fonte
Já se passaram alguns anos desde que esta pergunta foi respondida pela última vez. O React introduziu "Hooks" em 2017, e "keyCode" foi descontinuado.
Agora podemos escrever isso:
Isso registra um ouvinte no
keydown
evento, quando o componente é carregado pela primeira vez. Ele remove o ouvinte de evento quando o componente é destruído.fonte
é assim que você faz se quiser ouvir a tecla "Enter". Há um prop onKeydown que você pode usar e pode ler sobre ele no documento react
e aqui está um codeSandbox
fonte