Enterキーを押すとformが送信されてしまうことがありますよね。
入力中にマウスを使わずにキーボードのみで送信できるので楽ですね。
ただ、入力中に意図せずEnterを押したときなどは逆に「あーーー」って感じになりますね。
半角英数の入力項目を持ったformを編集中にうっかりEnterを押すと送信されちゃうと指摘を受けたので修正しました。
google先生に聞くとinputタイプを「submit」から「button」に変える対応がのってました。
送信ボタンのタイプを変更
<form name="form1" action="index.html">
<input type="text" name="text1" />
<input type="text" name="text2" />
<input type="submit" value="送信" />
</form>
↓
<form name="form1" action="index.html">
<input type="text" name="text1" />
<input type="text" name="text2" />
<input type="button" onclick="submit();" value="送信" />
</form>
実装してみると確かに送信されません。対応完了と思ったら、これだとASP.NET MVCの検証機能が働かないんですね。まーsubmitじゃないですからね。なのでjava scriptで対応することにしました。
java scriptで対応
送信ボタン(input要素)にてキーダウン時にキーがEnterだったらキャンセルです。※13はEnterキーのキーコードです
$(function(){
$("input"). keydown(function(e) {
if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) {
return false;
} else {
return true;
}
});
});
ただし、当たり前ですが送信ボタンにフォーカスしてEnterで送信したくても無理ですwww

0 件のコメント:
コメントを投稿