2013-02-22 85 views
-5

我有一个基本的AJAX请求,像这样:与默认操作,然后再继续执行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(); 
      } 
     } 
+2

和你的问题是....? – Colleen 2013-02-22 22:07:40

+0

我相信问题是“如何在提交表单之前从AJAX请求获取响应” – renab 2013-02-22 22:08:18

+1

如果不使用同步ajax,则通常不是好主意。 – 2013-02-22 22:09:45

回答

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(); 
     } 
    });  
}); 
+0

对不起,这是迟到了,但感谢倾向于我在正确的方向,并抱歉蹩脚的书面问题,我发布时很匆忙!再次感谢! – 2013-02-28 01:16:48

+0

@PeterStuart没问题,很高兴你能得到它的工作。 – 2013-02-28 02:56:30

相关问题