반응형
react.js에서 Enter 키를 사용하여 양식을 제출하는 방법은 무엇입니까?
다음은 내 양식과 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>
변경 <button type="button"
에 <button type="submit"
. 을 제거합니다 onClick
. 대신 <form className="commentForm" onSubmit={this.onCommentSubmit}>
. 이것은 버튼을 클릭하고 리턴 키를 눌러야합니다.
onFormSubmit = e => {
e.preventDefault();
const { name, email } = this.state;
// send to server with e.g. `window.fetch`
}
...
<form onSubmit={this.onFormSubmit}>
...
<button type="submit">Submit</button>
</form>
keydown
이벤트를 사용 하여 수행하십시오.
input: HTMLDivElement | null = null;
onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {
// 'keypress' event misbehaves on mobile so we track 'Enter' key via 'keydown' event
if (event.key === 'Enter') {
event.preventDefault();
event.stopPropagation();
this.onSubmit();
}
}
onSubmit = (): void => {
if (input.textContent) {
this.props.onSubmit(input.textContent);
input.focus();
input.textContent = '';
}
}
render() {
return (
<form className="commentForm">
<input
className="comment-input"
aria-multiline="true"
role="textbox"
contentEditable={true}
onKeyDown={this.onKeyDown}
ref={node => this.input = node}
/>
<button type="button" className="btn btn-success" onClick={this.onSubmit}>Comment</button>
</form>
);
}
참고 URL : https://stackoverflow.com/questions/33211672/how-to-submit-a-form-using-enter-key-in-react-js
반응형
'IT박스' 카테고리의 다른 글
didFailWithError : Error Domain = kCLErrorDomain Code = 0“작업을 완료 할 수 없습니다. (0) | 2020.10.13 |
---|---|
MatLab 오류 : 정적 TLS로 열 수 없습니다. (0) | 2020.10.12 |
호스트 이름의 IP 주소 확인 (0) | 2020.10.12 |
속성이 XPath에서 무언가로 시작하는 요소 선택 (0) | 2020.10.12 |
Node.js console.log ()는 아무것도 로깅하지 않습니다. (0) | 2020.10.12 |