RegularExpressionValidator проверяет только один раз
У меня есть форма, в которой я хотел бы, чтобы гости вводили свои 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 Не перепроверять ввод, но это не помогло в моем случае.
1 ответ
Ваше проверочное выражение:
[a-zA-Z' ']
Что означает: ровно одну букву, один апостроф или один пробел.
Вы, вероятно, хотите использовать что-то вроде следующего:
[\w\s]*
Что означает: любое количество букв или пробелов.