0

我想使用 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,我想提交我的表单。但无论数据值如何,表单都没有被提交。它总是得到返回值假。我已经检查了它是否达到了 else if 条件,但执行并没有在返回时停止。

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

4

3 回答 3

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
});
于 2013-06-27T12:40:00.823 回答
0

我不确定您要检查哪些数据。但是如果这些数据来自表单本身,那么您需要在 ajax 调用之前对其进行检查。一旦你进行了 ajax post 调用,你的表单就已经提交了。

 $("#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;
 });
于 2013-06-27T12:50:18.910 回答
0

当我想刷新我的页面时,我确实想要同步请求。设置 async false 解决了这个问题。我能够在 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;
});
于 2013-06-28T05:21:31.467 回答