在继续执行默认操作之前执行AJAX请求

时间:2013-02-22 22:05:48

标签: javascript jquery ajax preventdefault

我有一个基本的AJAX请求:

    $.ajax({
        url: 'check_password.php',
        type: 'post',
        data: 'password='+password,
        dataType: 'json',
        success: function(json) {
            if (json['success']) {
               //Continue with default action
            }else{
                //Password is invalid, stop the script and return an error
                preventDefault();
                $(".error").show();
            }
        }

1 个答案:

答案 0 :(得分:1)

我建议完全防止默认,然后在表单节点上使用.submit()提交表单(如果它是表单),从而绕过jQuery事件处理程序。

$("#myform").on("submit",function(event){
    event.preventDefault();
    var form = this;
    $.ajax({
        url: theurl,
        type: "POST",
        data: thedata
        dataType: "json"
    }).done(function(json){
        if (json.success) {
            form.submit();
        }
        else {
            $("#error").show();
        }
    });    
});