1. ホーム
  2. jquery

一部のフィールドのみ、Enterキーによるフォーム送信を無効にする

2023-09-04 08:37:49

質問

ユーザーが慣れ親しんでいる、従来の「Enter を押すとフォームが送信される」動作を維持したいと思います。しかし、反射的に、ユーザーはテキスト入力ボックスで終了したときに、実際にフォームを完了する前に Enter キーを押してしまうことがよくあります。

私は、フォーカスが特定の入力クラスにあるときだけ、Enter キーをハイジャックしたいと思います。

見る 関連する質問 これは私が探しているもののように見えます。

if (document.addEventListener) {
    document.getElementById('strip').addEventListener('keypress',HandleKeyPress,false);
} else {
    document.getElementById('strip').onkeypress = HandleKeyPress;
}

が、その if (document.addEventListener) { の部分は見慣れない。

どのように解決するのですか?

エンターキーをキャプチャしてキャンセルすることができます keypress をキャプチャしてキャンセルすることができます。

$('.noEnterSubmit').keypress(function(e){
    if ( e.which == 13 ) return false;
    //or...
    if ( e.which == 13 ) e.preventDefault();
});

そして、入力には class="noEnterSubmit" :)

他の人が後でこれを見つけたときのために、先に見ておくと、で jQuery 1.4.3 (まだ出ていません)では、これを短くすることができます。

$('.noEnterSubmit').bind('keypress', false);