Aquí está mi formulario y el método onClick. Me gustaría ejecutar este método cuando se presiona el botón Enter del teclado. Cómo ?
NB: No se agradece jquery.
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
fuente
fuente
onCommentSubmit
, también debe llamarevent.preventDefault()
yevent.stopPropagation()
para evitar que el formulario vuelva a cargar la página (ya que loaction
más probable es que sea un formulario con un atributo en blanco )action='#'
atributo delform
elemento.Utilice el
keydown
evento para hacerlo:fuente
Han pasado bastantes años desde la última vez que se respondió a esta pregunta. React introdujo "Hooks" en 2017, y "keyCode" ha quedado obsoleto.
Ahora podemos escribir esto:
Esto registra un oyente en el
keydown
evento, cuando el componente se carga por primera vez. Elimina el detector de eventos cuando se destruye el componente.fuente
así es como lo haces si quieres escuchar la tecla "Enter". Hay un accesorio de onKeydown que puede usar y puede leer sobre él en react doc
y aquí hay un código Sandbox
fuente