2012-03-10 118 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。

希望这能帮助你解决问题。