0

我有一个表格,我希望客人在其中输入他们的nameaddress...在每个字段上我都有一个RequiredFieldValidator和一个RegularExpressionValidator

例如:

<asp:TextBox ID="mailNameTextBox" runat="server" MaxLength="70" ValidationGroup="mail"></asp:TextBox>
<asp:RegularExpressionValidator ID="mailNameTextBox_RegularExpressionValidator" runat="server" ErrorMessage="Name can only have letters or spaces." ControlToValidate="mailNameTextBox" ValidationExpression="[a-zA-Z' ']" ValidationGroup="mail" Display="Dynamic">*</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="mailNameTextBox_RequiredFieldValidator" runat="server" ErrorMessage="Name field is required." ControlToValidate="mailNameTextBox" ValidationGroup="mail" Display="Dynamic">*</asp:RequiredFieldValidator>

当我输入一个包含数字的名称(即未通过正则表达式)并且"tab"不在 中时TextBoxRegexValidator立即显示为 *,并且表单无法提交。但是当我回去删除数字(即通过Regex)时,Validator似乎没有重新检查输入,并且表单将永远无法提交。

有没有办法在离开框时始终触发验证,而不仅仅是第一次(除了在 TextBox 失去焦点时调用验证方法)。我会认为这将是自动的?

我花了一些时间试图找到这个问题的答案,但我不确定如何将我的问题表述为“彻底研究它”,所以如果这是重复的,我很抱歉。

我确实看到了这个: ASP.NET:RegularExpressionValidator 不重新检查输入 ,但对我来说并没有真正的帮助。

4

1 回答 1

0

您的验证表达式是这样的:

[a-zA-Z' ']

这意味着:恰好是一个字母或一个撇号或一个空格。

您可能想要使用类似以下的内容:

[\w\s]*

这意味着:任意数量的字母或空格。

于 2013-08-04T10:00:57.330 回答