2

ログインフォームを送信するこのボタンがあります:

<input class="btn btn-large btn-success" id="login-button" onclick="handleLogin()" name="submit" type="submit" value="Login"/>

そして、ユーザーがEnterキーを押したときにカスタム送信するために使用したいこの関数があります:

$(document).ready(function () {

     $(document).keyup(function(event) { 

        if(event.which == 13) {

            $('#login-button').click();
            //event.preventDefault();
            //return false;
        }
    });
});

ただし、これはまったく何もしません。コードのコメント部分の有無にかかわらず試しました。formクリックするとフォームの送信が機能し、要素内に入力フィールドがないことに注意してください。AJAXを使用して送信するためにhandleLogin()を使用しています。だから私が本当に欲しいのはこれ#login-buttonがクリックされることだけです! 問題がわかりましたか?前もって感謝します。

更新: Chrome BETA チャンネルを使用しています。

重要: ENTER を押したときに #login-button がクリックされるようにします。それ以上のものはありません。フォームの送信方法はすでに知っています。

4

2 に答える 2

4

デモフィドル

$(document).ready(function () {    
     $(document).keyup(function(event) {  
        if(event.keyCode === 13) {

            $('#yourForm').submit(); // submit form
             alert('yeah!')
          
            event.preventDefault();
            return false;
        }          
     });     
});

use:keyCodeの代わりにwhich
use:フォーム.submit()nameまたはidを使用します。http://api.jquery.com/submit/
_});

于 2012-04-29T19:28:45.953 に答える
1

フォーム送信イベントを処理するより良い方法は次のとおりです。

<form id="form">
...
//input texts ...
...
<input type="submit" value="Send"/>
</form>

次に、jquery(押されたキーを知る必要はありません。送信ボタンまたはEnterキーによってディスパッチされた送信イベントのみです):

$("#form").submit(function(e){
e.preventDefault();
//your logic ...
});
于 2012-04-29T19:33:04.100 に答える