Asp.net 必填字段验证器问题

标签 asp.net requiredfieldvalidator

我正在使用asp.net validationsjquery validation用于检查用户输入。我正在使用 required field validators 的数量和custom validators在我的表单中,我面临一个奇怪的问题,当字段带有 required validator 时为空,error message显示在 validation summary 。这没关系。当同一字段留空并且在其他字段中输入错误的输入时 custom validators ,, validation summary仅显示 error messagerequired field validator .其他错误消息只是不显示。任何人都可以指出我哪里出错了。 谢谢

最佳答案

以下代码示例将 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。

希望这能让您继续前进并解决您的问题。

关于Asp.net 必填字段验证器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9644405/

相关文章:

c# - 在 UserControl 中使用泛型类型的正确方法是什么?

sql - 名+姓+生日组合是否足够独特?

javascript - 单击父节点时显示子节点并隐藏父节点

javascript - 在javascript中更改控件背景颜色 - 但是如何在提交表单之前通过验证时重置颜色

c# - NAudio 拆分 mp3 文件

asp.net - 将 GridView 导出到 Excel 时出现 System.OutOfMemoryException

javascript - 如果输入值只是空格,则不会出现错误消息

jsf-2 - 如何自定义 Primefaces' Growl 所需的验证消息

c# - 在按钮中添加 OnClientClick 时必填字段验证器不起作用

asp.net - 必填字段验证器不起作用