Я пытаюсь использовать CustomValidator для проверки ввода строки - почтовый ящик
В основном, я хочу, чтобы пользователи не вводили свой почтовый адрес вадресное поле, для которого я написал функцию с регулярным выражением.Но проблема в том, что сообщение об ошибке не появляется, хотя оно вызывает функцию.(Я знаю это, потому что я проверил это, поместив точки останова в мою функцию Javascript с помощью инструментов разработчика Chome.)
Ниже приведен код моего файла .ascx.
<div class="clearfix">
<asp:Label ID="lblAddress" runat="server" Text="Address" AssociatedControlID="txtAddress"
class="formlabel firstfocus"></asp:Label>
<div class="input">
<asp:TextBox ID="txtAddress" runat="server" CssClass="large" MaxLength="80"></asp:TextBox>
<asp:RequiredFieldValidator ID="valAddress" runat="server" ControlToValidate="txtAddress"
CssClass="error-block" Display="Dynamic" ErrorMessage="<p>Address is required</p>"
SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="valAddressPOBOX" runat="server" EnableClientScript="true" ValidateEmptyText="true" ErrorMessage="<p>Cannot contain a PO Box number</p>" ClientValidationFunction="AddressPOBoxValidation" ControlToValidate="txtAddress" Display="Dynamic" SetFocusOnError="True"></asp:CustomValidator>
</div>
</div>
RequiredFieldValidator вызывает сообщение об ошибке.
Ниже приведен скриншот с сообщением об ошибке, сгенерированным с RequiredFieldValidator
с CustomValidator срабатывает триггер, но сообщение об ошибке не появляется.Я проверил другие CustomValidators на той же странице ascx и убедился, что у этого свойства не отличаются от них, но, тем не менее, если мне не хватает какого-либо свойства видимости, не стесняйтесь исправлять меня.
Ниже приведены 2снимки экрана, показывающие, как происходит действие CustomValidator .
Перед вводом po box
После ввода po box (Обратите внимание, как увеличивается разрыв между адресом и адресом 2).
Идет дальшена стороне Javascript ниже функция
function CheckPOBOXAddress(address) {
var poboxPattern = /(p\.?\s?o?\.?\s?b\.?(ox)\.?(\s|[0-9])?|post\soffice)/i;
if (poboxPattern.test(address))
return true;
else
return false;
}
function AddressPOBoxValidation(sender, args) {
var address = args.Value;
if (CheckPOBOXAddress(address)) {
args.IsValid = false;
return;
}
args.IsValid = false;
}