我有一个表单,我希望客人输入他们的name
,address
等...
在每个字段中,我有一个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"
TextBox
时,RegexValidator
会立即显示*和表格没有提交。但当我返回并删除号码(即传递Regex
)时,Validator
似乎没有重新检查输入,表单将永远无法提交。
有没有办法在离开盒子而不是第一次时总是激活验证(除了在TextBox失去焦点时调用验证方法)。我原以为这会是自动的?
我花了一些时间试图找到答案,而且我不确定如何将我的问题写成“彻底研究它”,所以如果这是重复的话,我很抱歉。
我确实看到了这个: ASP.NET: RegularExpressionValidator Doesn't reCheck the input 但在我的情况下它并没有真正帮助。
答案 0 :(得分:0)
您的验证表达式为:
[a-zA-Z' ']
这意味着:恰好是一个字母或一个apostroph或一个空格。
您可能希望使用以下内容:
[\w\s]*
这意味着:任意数量的字母或空格。