2013-06-27 96 views
0

我想使用ajax提交我的表单。jquery表单提交使用ajax

下面是我的代码:

$("#loginForm").submit(function() { 
var url = <url>; 
$.ajax({ 
     type: "POST", 
     url: url, 
     data: $("#loginForm").serialize(), // serializes the form's elements. 
     success: function(data) 
     { 
      if(data == '0'){ 
        $("#loginErr").show(); 
        return false; 
      } 
      else if(data == '1') 
        return true; 
     } 
    }); 
    return false; 
}); 

我希望得到我的表单提交,如果Ajax响应是1,但不论数据的价值,形式没有得到提交。它总是获得返回值false。我已经检查过,如果条件达到了其他条件,但执行不会在返回时停止。

如何提交我的表单?我想刷新我的页面。

+5

AJAX异步是顺便说一句,你不能从成功回调函数返回 –

+0

值你的**网址**变量是你真正的代码的实际网址,是否正确? – pmandell

+0

请发布您的服务器端代码... –

回答

1

使用:

$("#loginForm").submit(function (event) { 
    var url = <url> ; 
    $.ajax({ 
     type: "POST", 
     url: url, 
     context:this, //setting context on form 
     data: $("#loginForm").serialize(), // serializes the form's elements. 
     success: function (data) { 
      if (data == '0') $("#loginErr").show();  
      else if (data == '1') this.submit();//use js submit event, not jq. We need to manually submit it now that we know its successful 
     } 
    }); 
    event.preventDefault(); //Stop the form submitting straight away 
}); 
+0

我试过了,但我的页面没有刷新。 –

+0

检查条件是否符合(数据=='1') –

+0

是的。条件符合。 –

0

我不知道你想检查哪些数据。但是如果这些数据来自表单本身,那么你需要在ajax调用之前检查它。一旦你完成了ajax的通话,你的表格已经提交。

$("#loginForm").submit(function(e) 
{ 

var url = <url>; 
e.preventDefault(); 
mydata = $("#loginForm").serialize(); 
//Your check here 
if(mydata == '0') 
{ 
     $("#loginErr").show(); 
     return false; 
} 

$.ajax({ 
    type: "POST", 
    url: url, 
    data: mydata, 
    success: function(response) 
    { 
     //this is your post response processor 
    } 
}); 
return false; 
}); 
0

因为我想刷新我的页面,我确实想要同步请求。设置异步错误解决了这个问题。我可以在Ajax对象之外获取ret值,因为它是同步请求的。

$("#loginForm").submit(function() { 
var url = <url>; 
var ret = false; 
$.ajax({ 
     async: false, 
     type: "POST", 
     url: url, 
     data: $("#loginForm").serialize(), // serializes the form's elements. 
     success: function(data) 
     { 
      //alert(data); // show response from the php script. 
      if(data == '1') 
        ret = true; 
      else if(data == '0') 
        $("#loginErr").show(); 
     } 
    }); 
    return ret; 
});