Вот моя форма и метод onClick. Я хотел бы выполнить этот метод, когда нажата кнопка Enter на клавиатуре. Как ?
NB: 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
Истяк Морсалин
источник
источник
onCommentSubmit
, вы также должны вызватьevent.preventDefault()
и,event.stopPropagation()
чтобы форма не перезагружала страницу (так как это,action
скорее всего, форма с пустым атрибутом)action='#'
атрибутомform
элемента.Используйте
keydown
для этого событие:источник
С момента последнего ответа на этот вопрос прошло уже несколько лет. React представил «хуки» еще в 2017 году, а «keyCode» устарел.
Теперь мы можем написать это:
Это регистрирует прослушиватель
keydown
события, когда компонент загружается в первый раз. Он удаляет прослушиватель событий при уничтожении компонента.источник
вот как вы это делаете, если хотите слушать клавишу «Enter». Существует опора onKeydown, которую вы можете использовать, и вы можете прочитать об этом в реакционной документации.
а вот код Sandbox
источник
введите код здесь. Иногда во всплывающем окне не работает привязка только формы и передача onSubmit в форму, потому что форма может не иметь ввода. в этом случае, если вы привяжете событие к документу, выполнив
document.addEventListener
это, это вызовет проблемы в других частях приложения, поскольку для решения этой проблемы мы должны обернуть форму и поместить ввод, скрытый css .. тогда вы foucus на этом вводе ref, он будет работать правильно.источник