【问题标题】:Can 1 TextBox have 2 RegularExpressionValidator?1个TextBox可以有2个RegularExpressionValidator吗?
【发布时间】:2013-08-14 00:11:16
【问题描述】:

我正在尝试验证用于用户注册页面中用户名的 TextBox。条件是:

  1. 第一个字符应该是大写字母。
  2. 长度最多应为 8 个字符。

我正在使用 RegularExpressionValidator 同时检查两个条件,但这会导致相同的错误消息:"Username should be maximum 8 characters long and start with an uppercase letter."

我想根据上述情况显示具体的错误信息,比如:

  • 条件一:用户名应以大写字母开头。
  • 条件 2:用户名最长为 8 个字符。

如果两个条件都不满足,我希望同时显示两个错误消息。

这是我现在的代码:

<asp:TextBox ID="username" runat="server" CssClass="InputText"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvUsername" runat="server"
    ControlToValidate="username" Display="Dynamic"
    EnableClientScript="true">Username is required
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator
    ID="revUsername" runat="server" Display="Dynamic"  
    ControlToValidate="username"
    ValidationExpression="[A-Z][A-Z0-9]{0,7}" >
        Username should be max 8 characters long
        and should start with an alphabet.
</asp:RegularExpressionValidator>

我如何做到这一点?

【问题讨论】:

  • 将 2 个单独的验证器附加到同一个元素不适合您?
  • 不,它没有。我什至尝试为第二个条件添加 CustomValidator,即使它没有提供所需的输出。
  • 它对我有用。我刚刚测试了它。如果我提交表单,将用户名字段留空,我会得到:Username is required。如果我输入一些内容并提交表单,我会得到:Username should be max 8 characters long and should start with an alphabet.
  • 对不起,你误会了。我想显示 2 条不同的错误消息。请仔细阅读问题。希望我的问题很清楚。
  • 您希望在用户名字段为空时显示两条错误消息。您提出问题的方式并没有清楚地表达这一点。

标签: asp.net server-side-validation


【解决方案1】:
<asp:TextBox ID="username" runat="server" MaxLength="8" CssClass="InputText"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvUsername" runat="server"
    ControlToValidate="username" Display="Dynamic"
    EnableClientScript="true">Username is required
</asp:RequiredFieldValidator>

首字母大写 Regex to check if the first character is uppercase

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2020-05-20
    • 2011-12-09
    • 1970-01-01
    相关资源
    最近更新 更多