2014-03-18 35 views
0

我验证使用AJAX这样的形式:验证使用AJAX的表单,然后提交

<script> 

     $(function() { 

      $("#loginForm").submit(function() { 
       var data = $("#loginForm :input").serialize(); 
       var curl = "../view/index_valid.php"; 
       $.ajax({ 
        url: curl, 
        method: "post", 
        data: data, 
        success: function(data) { 
         if(data==="logged") { 
          return true; 
         } else { 
          return false; 
         } 
        } 

       }); 
       return false; 
      }); // end loginForm submit function 

     }); // end function 

</script> 

我觉得当回报,形式应提交(action="...")。 ..但没有任何反应。什么可能是错的?

回答

1

而不是在成功回调return true;,使用DOM节点方法提交表单:

$("#loginForm").submit(function() { 
    var data = $("#loginForm :input").serialize(); 
    var curl = "../view/index_valid.php"; 
    $.ajax({ 
     context: this, //>> set context 
     url: curl, 
     method: "post", 
     data: data, 
     success: function (data) { 
      if (data === "logged") { 
       this.submit(); //>> that will submit the FORM 
      } /*else { 
       return false; //>> returning false here is useless 
      }*/ 
     } 
     return false; 
    }); 
}); // end loginForm submit function 
+0

我真的相信,如果我添加了'$(本).submit();'它会返回同样的$(“#loginForm”)。submit(...)'函数。 –

+0

@JhonatanSandoval这就是为什么我在这里使用'this.submit();'不'$(this).submit()'并且不要忘记设置ajax请求的上下文选项。当然,你不能在FORM中使用属性名称等于'submit'的任何元素,否则FORM方法被覆盖 –

+0

非常感谢你,这是我的错。问候 !! –

相关问题