Я пытаюсь добавить валидатор настраиваемого поля в какой-нибудь устаревший код.Если электронная почта не принадлежит определенному домену, это должно предотвратить запуск формы.
Вот моя разметка.
<asp:Textbox id="tbEmail" autocomplete="off" CssClass="txt260" runat="server" TabIndex="1"></asp:Textbox>
<asp:RequiredFieldValidator id="rfvEmail" runat="server" Display="Dynamic" ForeColor="" ControlToValidate="tbEmail" ErrorMessage="Required" CssClass="ValidatorError">Required</asp:RequiredFieldValidator>
<asp:CustomValidator id="cfvEmail" runat="server" Display="Dynamic" ControlToValidate="tbEmail" ErrorMessage="Invalid Email" CssClass="ValidatorError" OnServerValidate="tbEmail_CustomValidate"></asp:CustomValidator>
<asp:RegularExpressionValidator id="regExpEmail" runat="server" Display="Dynamic" ForeColor="" ControlToValidate="tbEmail" ErrorMessage="Invalid" CssClass="ValidatorError"></asp:RegularExpressionValidator>
...
<asp:Button ID="bSubmit" Text=" CREATE ACCOUNT " CssClass="NewButton" runat="server" OnClientClick="DisabledUpdateButton()" OnClick="bSubmit_Click" />
Вот код C #:
protected void tbEmail_CustomValidate(object source, ServerValidateEventArgs args)
{
List<string> approvedEmailDomains = new List<string>()
{
"domainnameihid.com"
};
if (!approvedEmailDomains.Any(x => tbEmail.Text.EndsWith(x)))
{
args.IsValid = false;
}
}
Когда я пишуневерное доменное имя, код попадает в args.IsValid = false.Как только args.IsValid имеет значение false, он все равно продолжает запускать кнопку отправки.Обязательные и регулярные поля валидаторы не делают.Как получить CustomValidator, чтобы предотвратить запуск или выполнение OnClick кнопки?