Oto mój formularz i metoda onClick. Chciałbym wykonać tę metodę po naciśnięciu klawisza Enter na klawiaturze. W jaki sposób ?
Uwaga: jQuery nie jest mile widziane.
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
źródło
źródło
onCommentSubmit
, należy również zadzwonićevent.preventDefault()
ievent.stopPropagation()
zapobiec formularz z przeładowania strony (od jego postaci z pustegoaction
atrybutu najprawdopodobniej)action='#'
atrybutemform
elementu.Użyj
keydown
zdarzenia, aby to zrobić:źródło
Od ostatniej odpowiedzi na to pytanie minęło sporo lat. React wprowadził „hooki” w 2017 roku, a „keyCode” stał się przestarzały.
Teraz możemy napisać to:
Powoduje to rejestrację detektora na
keydown
zdarzenie, gdy składnik jest ładowany po raz pierwszy. Usuwa detektor zdarzeń, gdy składnik zostanie zniszczony.źródło
tak to robisz, jeśli chcesz nasłuchiwać klawisza „Enter”. Istnieje rekwizyt onKeydown, z którego możesz skorzystać i możesz o nim przeczytać w dokumencie react
a oto kodSandbox
źródło