ASP.NET: RegularExpressionValidator не перепроверяет ввод
У меня есть RegularExpressionValidator для проверки ввода электронной почты, что у меня есть, он отлично работает, если вход соответствует регулярному выражению,
Тем не менее, если я введу ошибочное электронное письмо, будет показано сообщение об ошибке, если я исправлю электронное письмо во входных данных, оно не будет перепроверено, сообщение об ошибке останется не позволяющим мне нажать кнопку "Регистрация", или, более того, она будет нажата, но ни одно событие не будет запущено
РЕДАКТИРОВАТЬ: добавил код ASPX
< table width="100%">< tr><td>Username:</td>
<td>
<input runat="server" id="txtUsername" type="text" size="30" />
</td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server"
ControlToValidate="txtUsername" ErrorMessage="*"></asp:RequiredFieldValidator
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server"
ErrorMessage="Username has to be atleast between 4-8 "
ValidationExpression="[A-Z]{4-8}"
ControlToValidate="txtUsername"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td> Email:</td><td>
<input runat="server" id="txtemail" type="text" size="30" /></td>
<td>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="txtemail" ErrorMessage="*">
</asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
ControlToValidate="txtemail" ErrorMessage="Format must be: abc@abc.com"
ValidationExpression="^[A-Za-z0-9._%+-]+@([A-Za-z0-9-]+\.)+([A-Za-z0-9]{2,4}|museum)$">
</asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<asp:Label runat="server" ForeColor="red" ID="lblerror"></asp:Label>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:Button runat="server" Text="Register"
ID="btnSubmit" Width="118px" onclick="btnSubmit_Click" />
</td>
</tr>
</table>
1 ответ
Вы проверяете Page.IsValid
в вашем методе btnSubmit_Click?
Также ваше проверочное выражение для username
не выглядит правильно, используйте запятую между минимальной и максимальной длинами.
ValidationExpression = "[AZ] {4-8}"
ValidationExpression = "[AZ]{4,8}"