input タグ、Enter→自動 submit を抑制

忘れていたので、メモをここに残しておく。

PCブラウザにおいて、、、
form タグの中が、type="text"input タグが1つしかない場合、
input タグにカーソルを置き、Enterキーを叩くと submit が発生する。


以下、submit 起きるケース
<form action="/req">
    <input type="text" name="foo">
    <input type="button" id="send" value="send">
</form>

以下、submit 起きないケース
<form action="/req">
    <input type="text" name="foo">
    <input type="text" name="foo2">

    <input type="button" id="send" value="send">
</form>

input タグに、onKeyPress 属性で window のイベントを拾ってやれば、
この submit を抑制できる。以下の JavaScript 関数を用意して

function submitStop(e){
   if (!e) var e=window.event;
   if (e.keyCode==13) return false;
}


以下のようにすれば良い。

<input type="text" name="foo" onKeyPress="return submitStop(event)" >