【发布时间】:2013-08-14 00:11:16
【问题描述】:
我正在尝试验证用于用户注册页面中用户名的 TextBox。条件是:
- 第一个字符应该是大写字母。
- 长度最多应为 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