2013-10-02 32 views
-1

我想用Ajax運行一些後臺驗證,但表單仍然發佈到控制器。提交表單與控制器動作的Ajax帖子

形式

<form id="myForm" method="post"> 
    <input type="hidden" name="username" /> 
    <input type="hidden" name="password" /> 
    <input type="submit" value="Submit" /> 
</form> 

腳本

$(document).ready(function() { 

    $("#myForm").submit(function (event) { 
     event.preventDefault(); 
     showLoadingWindow(); // Unhides some "Logging in..." div 
     $.ajax({ 
      url: "@actionUrl", 
      type: "POST", 
      data: $(this).serialize(), 
      cache: false, 
      done: function() { 
       window.location.href(@successUrl); 
      }, 
      fail: function() { 
       window.location.href(@errorUrl); 
      } 
     }); 
    }); 

}); 

我缺少什麼?

+0

我沒有看到您的驗證。這是通過ajax回調到服務器完成的嗎? –

+0

這是/應該在'url:「@actionUrl」'完成。 – idlackage

+0

控制檯中是否有錯誤?這可能是因爲綁定尚未執行。 –

回答

0

這完全是我先前已經註釋掉.href網址故障,因爲這個問題是我忘了引號周圍:window.location.href("@errorUrl");就是將已經固定它,即使控制檯沒有當我錯過引號時會拋出錯誤。

0

你可能會嘗試改變你的ajax調用來使用成功,而不是完成。

success: function(result){ 
    if(result.Success){ 
     window.location... 
    }else{ 
     window.location... 
    } 
}