inputでエンターキーを押しても、formのsubmitイベントが発生しないのはどうすれば良いの?
いつも忘れて混乱するので書いておく。細かいルールを解説したページを前見たんだけど見つけられない……
formの中にinput[type=submit]
なinput要素がないと、テキストフィールドでエンターを押してもsubmitイベントが発生しない。見えないようにしたsubmitボタンを、
<input type="submit" style="float:left; opacity:0; height:1px; width:1px; margin:0" value="to fire submit event on enter">
とでも書いて、設置しておく。display:none
だと、やっぱりsubmitイベントが発生しない。
でこの辺に悩んだ結果「Enterキーが押されたらsubmit」とかやると、日本語変換の確定とかの思わぬタイミングでsubmitされて悲しい思いをすることになる。まあ日本人ならちょっと触った時点で気づくだろうから、ここに書いてもしょうがないだろうけど。アメリカ人は最後まで気づかないんだと思う。例:Pivotal TrackerのTask欄。