0

到目前为止,由于堆栈流上的一些用户,我正在使 A ajax 登录表单取得很大进展。

现在,当我检查所有字段是否响应输入被按下时,它工作正常,除非当我选择提交按钮时,它会根据 Chrome 网络选项卡提交数据两次。

我认为它正在执行 .click 函数,就像 .keycode 函数一样。

如果 keycode enter 为 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 并将 false 返回到 keyup 函数,如下所示:

$('#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 回答