表单提交期间jQuery ajax [错误]

时间:2011-03-21 09:50:43

标签: jquery ajax

为什么会出现错误:

jQuery('#the_form').submit(function() {
    jQuery.ajax({
        url: 'stats.php?increment=true',
        success: function() {
            alert('Load was performed.');
        },
        error: function() {
            alert('Load wasnt performed.');
        }
    });

    return true;
});

并且没有(返回为假,其他一切都相同):

jQuery('#the_form').submit(function() {
    jQuery.ajax({
        url: 'stats.php?increment=true',
        success: function() {
            alert('Load was performed.');
        },
        error: function() {
            alert('Load wasnt performed.');
        }
    });

    return false;
});

如何在提交之前调用该脚本(对外部操作)?

2 个答案:

答案 0 :(得分:5)

您已订阅表单的.submit事件。在第一种情况下,您将返回true,这意味着您将保留要运行的默认操作,即将表单提交到服务器并将浏览器重定向到stats.php。因为浏览器会立即重定向,所以您的AJAX调用可能永远没有时间完成。

在第二种情况下,您将返回false,这意味着您正在取消默认表单提交,而您正在发送一个AJAX请求,而该请求有足够的时间来执行。

答案 1 :(得分:0)

好吧,当你提交表单时,如果你在.submit()方法中返回true,它将使浏览器实际提交数据而不是仅仅进行AJAX调用。由于您正在使用AJAX,因此您应该阻止表单的提交,因为您期望您的AJAX调用返回。