1. ホーム
  2. reactjs

[解決済み] react.jsでEnterキーを使ってフォームを送信するには?

2022-04-28 20:24:15

質問

ここに私のフォームとonClickメソッドがあります。キーボードのEnterボタンが押されたときに、このメソッドを実行したいのですが。どのようにすればよいですか?

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.onFormSubmit}> . これで、ボタンのクリックとリターンキーの押下をキャッチできるはずです。

const onFormSubmit = e => {
  e.preventDefault();
  const { name, email } = this.state;
  // send to server with e.g. `window.fetch`
}

...

<form onSubmit={onFormSubmit}>
  ...
  <button type="submit">Submit</button>
</form>