2010-11-08 24 views
0

我有一個這樣的形式:問題的一個提交輸入和jQuery驗證

<script type="text/javascript"> 
    function checkpas() 
    { 
     var newp = $('#NewPassword').val(); 
     var newpp = $('#RepeatedNewPassword').val(); 

     if (newp != newpp) 
     { 
      return false; 
     } 
    } 
    </script> 

<% using (Html.BeginForm()) {%> 
    <%: Html.ValidationSummary(true) %> 
     ... 
    <input type="submit" id="sub_btn" value="Edit" onclick="checkpas();" /> 
<% } %> 

但提交輸入總是調用表單提交,即使我在JS代碼返回false。爲什麼?

回答

1

我相信你需要返回函數結果:代替 :

<input type="submit" id="sub_btn" value="Edit" onclick="checkpas();" /> 

使用:

<input type="submit" id="sub_btn" value="Edit" onclick="return checkpas();" /> 

也是你的函數添加else return true;

2

你需要運行的onsubmit()不是的onclick()

像這樣:

<script type="text/javascript"> 
    $("#yourformID").submit(function (evt) 
    { 
     var newp = $('#NewPassword').val(); 
     var newpp = $('#RepeatedNewPassword').val(); 

     if (newp != newpp) 
     { 
      return false; 
     } 
    } 
    </script> 

注意在你的ASPX這樣分配形式的ID。這裏是一個參考http://msdn.microsoft.com/en-us/library/dd492714.aspx

<% using (Html.BeginForm("ActionName", "ControllerName", Method, new {id="myFormID")})) {%>