2012-03-10 162 views
2

我使用asp.net validationsjquery validation檢查用戶input.I現在用在我的形式required field validatorscustom validators號,我面臨的一個奇怪的問題,當一個required validator字段爲空,則error message顯示在validation summary上。這是正確的。當相同的字段留空,並在其他字段上輸入了錯誤的輸入時,custom validators ,, validation summary只顯示error messagerequired field validator。其他錯誤消息只是不顯示。可以任何人指出我在哪裏我出錯了。 由於Asp.net必填字段驗證問題

+2

我想我們需要看看你的代碼。 – Zishan 2012-03-10 16:10:47

回答

2

在這裏是與的CustomValidator使用的RequiredFieldValidator在一起的代碼示例。它驗證兩個字段以及其中一個失敗的情況,並在ValidationSummary中顯示錯誤消息。

CustomValidator在代碼後面有OnServerValidate函數。

在.aspx標記:

  <form id="form1" runat="server"> 
       <div> 
        <label>Name:</label> 
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" EnableClientScript="false" 
        ControlToValidate="TextBox1" ErrorMessage="The 'Name' field cannot be empty!" Text="*" ForeColor="Red" 
        Display="Dynamic"></asp:RequiredFieldValidator> 

        <br /><br /> 

        <label>Number:</label> 
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> 
        <asp:CustomValidator ID="CustomValidator1" runat="server" ValidateEmptyText="true" 
        ControlToValidate="TextBox2" ErrorMessage="The 'Number' field must be exactly 5 digits!" Text="*" ForeColor="Red" 
        Display="Dynamic" onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator> 

        <asp:ValidationSummary ID="ValidationSummary1" runat="server" HeaderText="Please check the following fields:" ForeColor="Red" DisplayMode="BulletList" /> 

        <br /> 

        <asp:Button ID="Button1" runat="server" Text="Submit" /> 
       </div> 
      </form> 

和.aspx.cs文件中的驗證函數:

  protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) 
      { 
       if (args.Value.Length < 5 || args.Value.Length > 5) 
       { 
        args.IsValid = false; 
       } 
       else 
       { 
        args.IsValid = true; 
       } 
      } 

爲了能夠同時顯示錯誤消息,並且不僅RequiredFieldValidator's,其屬性'EnableClientScript'應該設置爲false。

希望這能幫助你解決問題。