0

これまでのところ、スタックフローに関する数人のユーザーのおかげで、Ajaxログインフォームを大幅に進歩させています。

Enterキーが押されたことに応答する場合、すべてのフィールドをチェックアウトすると、Chromeネットワークタブに従ってデータを2回送信している送信ボタンにタブで移動する場合を除いて、正常に機能します。

.keycode 関数と同じように .click 関数を実行していると思います。

キーコード入力が false でボタンをクリックして関数を実行する場合、または true の場合は .click 関数を実行しない場合、コードでどのように言うことができますか。

$(document).ready(function () {
    $('#field').keyup(function (e) {
        if(e.keyCode == 13) {
            //If enter is pressed vailidate the form
            $.ajax({
                url: 'ajax/check.php',
                type: 'post',
                data: {
                    method: 'fetch'
                },
                success: function (data) {
                    $('.chat .messages').html(data);
                }
            });
        };
    });
    $('#submit').click(function () {
        alert('Do something here this is just a test');
    });
});
4

1 に答える 1

1

preventDefault を追加して、次のように keyup 関数に false を返すだけです。

$('#field').keyup(function (e) {
    if(e.keyCode == 13) {
        //If enter is pressed vailidate the form
        e.preventDefault();
        $.ajax({
            url: 'ajax/check.php',
            type: 'post',
            data: {
                method: 'fetch'
            },
            success: function (data) {
                $('.chat .messages').html(data);
            }
        });
     return false;
    };       
});

これにより、ユーザーが Enter キーを押したときにフォームが送信されなくなります。

于 2013-05-25T12:45:34.323 に答える