2014-03-18 55 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

非常感謝你,這是我的錯。問候 !! –

相關問題