【问题标题】:Asp.net Required Field Validator IssueAsp.net 必填字段验证程序问题
【发布时间】:2012-04-12 18:03:40
【问题描述】:

我使用asp.net validationsjquery validation 来检查用户输入。我在表单中使用required field validatorscustom validators 的数量,当required validator 的字段为空时,我遇到了一个奇怪的问题,error message 显示在 validation summary 上。没关系。当相同的字段为空并且在其他字段中输入错误的输入时,custom validatorsvalidation summary 只显示required field validatorerror message。其他错误消息不显示。谁能指出我哪里出错了。 谢谢

【问题讨论】:

  • 我认为我们需要查看您的代码。

标签: asp.net requiredfieldvalidator


【解决方案1】:

这是一个使用 RequiredFieldValidatorCustomValidator 的代码示例。它验证这两个字段以及其中一个字段何时失败,并在 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,它的属性 'EnableClientScript' 应该设置为 false。

希望这可以帮助您解决问题。

【讨论】:

    猜你喜欢
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    相关资源
    最近更新 更多