4

入力の 1 つが現在強調表示されているかどうかに関係なく、Enter キーを押したときに送信しようとしている複数の入力ボックスを含むフォームがあります。つまり、テキストを入力し、ページの背景をクリックし、Enter キーを押して、フォームを送信できるようにしたいと考えています。非表示のボタンを作成しようとしましたが、このソリューションは、カーソルがいずれかの入力内にある場合にのみ送信されるように見えます。

4

2 に答える 2

4

純粋な JavaScript を使用する場合に使用onkeypressします。document

フィドル(デモ)

JS:

var form = document.getElementById('form');
document.onkeypress = function(e) {
    if(e.keyCode === 13) //if enter pressed
    {
        form.submit();
    }

}

Matt が提案するようaddEventListenerに、を使用した別のソリューションを次に示します。

var form = document.getElementById('form');
function submitForm(e) {
    if(e.keyCode === 13) //if enter pressed
    {
        form.submit();
    }

}

document.addEventListener('keypress', function() {submitForm(event)}, false);

補足として、純粋なJSが簡単に役立つ場所でjQuery を使用することをお勧めしません。そのため、JavaScriptソリューションを提供しました。jQueryはサーバーの負荷を大幅に増加させるため、私はそれを思いとどまらせます!

あなたがJavaScriptを初めて使用すると言ったように、スクリプトを毎回実行するには、次の手順を実行します。

  1. .js拡張子付きのファイルにコードを追加する
  2. <script src="your_filename.js" type="text/javascript"></script>終了</body>タグの前に追加します。
  3. ページを更新してください。
于 2013-07-10T15:09:48.527 に答える
1

jQuery の助けを借りて:

$(document).keydown(function(e) {

    if (e.keyCode == 13) {

         $('#your-form').submit();

         return false;
    }

});
于 2013-07-10T15:10:10.510 に答える