2010-02-11 29 views
0

我在ASP.NET MVC頁面上使用JQuery驗證器插件如下。更新按鈕上的JQuery驗證器插件問題點擊ASP.NET MVC頁面

1)。點擊更新按鈕,驗證信息顯示正常。 2)。郵政編碼最小長度爲5,最大爲9,是必填字段和唯一數字。

問題是,即使我們輸入9位以上的數字,它也會顯示validatin消息並將其更新到數據庫。如果任何驗證規則失敗,則不應將其更新到數據庫。

是否有任何我在驗證規則中錯過了'return true/false'。

//Validate form on btnUpdateProfile button click 

$("#frmCustDetails").validate({ 
    rules: { 
     "AddressDetail.ZipCode": { 
      required: true, 
      digits: true, 
      minlength: 5, 
      maxlength: 9 
      } 
     }, 
    messages: { 
     "AddressDetail.ZipCode": { 
      required: "please enter zipcode", 
      digits: "please enter only digits", 
      minlength: "Min is 5", 
      maxlength: "Max is 9" 
     } 
    } 
}); 

<table> 
    <tr> 
    <td class="Form_Label"><label for="Zip">Zip</label><em>*</em></td> 
    <td CssClass="Form_Value"><%= Html.TextBox("AddressDetail.ZipCode", Model.AddressDetail.FirstOrDefault().ZipCode, new { @class = "required zip", minlength = "5"})%> 
    </td> 
    </tr> 

    <tr> 
    <td colspan="2" align="center"><input type="submit" id="btnUpdProfile" value="Update" /></td> 
    </tr> 
</table> 

回答

3

提交是否通過AJAX處理?如果是這樣,您可能需要使用submitHandler選項作爲驗證插件,並從那裏進行提交,而不是單獨應用的處理程序。如果使用單獨應用的處理程序,則可能需要在提交之前檢查該表單是否有效(使用valid()方法)。

+0

是的。這是使用Ajax BeginForm方法提交的,如下所示。 <%using(Ajax.BeginForm(「UpdateCustomer」,「」,new AjaxOptions {UpdateTargetId =「spanUpdateProfile」},new {id =「frmCustDetails」})) – Rita 2010-02-11 23:23:15

+0

我明白它爲什麼要提交。試圖實現Valid()方法並很快更新輸出。 – Rita 2010-02-11 23:52:55

+0

這篇文章幫助我實現了SubmitHandler。 http://tpeczek.blogspot.com/2010/01/asynchronous-form-in-aspnet-mvc.html – Rita 2010-02-12 04:59:48

0

我建議你考慮Xval從你的模型中生成所有這些邏輯,而不會中斷DRY; )

包含jquery支持eh? :D

Uber comparison:D

相關問題