teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2017/12/19 03:50

投稿

karamarimo
karamarimo

スコア2555

answer CHANGED
@@ -12,4 +12,17 @@
12
12
 
13
13
  日本語入力だと変換確定時のEnterでEnterキーの`keyUp`が発生するからそれを避けたいと言うことだと思いますが、`<form>`でラップしてその`submit`イベントで送信するようにすれば、それを気にする必要はありません。
14
14
 
15
- わからない部分があれば質問してください。
15
+ わからない部分があれば質問してください。
16
+
17
+ ## 追記
18
+
19
+ [DEMO(JSFiddle)](https://jsfiddle.net/karamarimo/pxk3s5nq/)
20
+
21
+ このように`input`要素が1つだけ`form`内に存在する時、Enterキーを押すと自動で`form`全体が`submit`されます。複数あるときでも、`form`内に`type=submit`なボタンが存在すれば同様になります。
22
+
23
+ デフォルトでは`submit`時にページ遷移しようとしますが、`submit`イベントハンドラ内で`false`を返すか、イベントオブジェクト`e`に対して`e.preventDefault()`すれば防げます。
24
+
25
+ また、この方法であれば特別なことをしなくても、日本語変換確定のEnterでは送信されません。
26
+
27
+ 関連リソース
28
+ [Implicit Submission of Form When Pressing Enter Key](http://stonefishy.github.io/blog/2015/06/30/implicit-submission-of-form-when-pressing-enter-key/)