Телефон в маске Edit Validator - PullRequest
0 голосов
/ 16 марта 2012

У меня проблемы с asp.net MaskedEditExtender и MaskedEditValidator. Я создал пользовательский элемент управления с маской телефона и замаскированным валидатором. У меня есть две проблемы, которые я мог бы использовать, чтобы исправить.

Проблема 1 - у меня есть выражение ValidationExpression, которое проверяет номер телефона, но если я установлю EnableClientScript = false, оно не будет отображать сообщение на экране. Он подтвердит правильность и не пропустит их, но сообщение не отображается. Если это правда, он будет отображаться, однако я хочу только выполнить проверку на стороне сервера.

Проблема 2 - Иногда мой контроль не требуется. Есть ли способ, чтобы выражение проверки запускалось, только если маска не пуста? Прямо сейчас, если это требуется, отображается EmptyValueMessage и проверка запускается, если вводится текст. Однако, если IsValidEmpty имеет значение true, выражение проверки запускается, когда оно пустое, и, следовательно, не допускает опустошения. Есть ли способ вызвать его, только если он не пустой, или мне нужно обновить выражение, чтобы разрешить пустую маску? Если мне нужно обновить выражение, есть ли у кого-нибудь хороший пример? (извините, регулярное выражение - моя слабость)

Ниже мой код.

_maskedEditExtender.ID = "maskedExt" + this.ID;
_maskedEditExtender.ClientIDMode = System.Web.UI.ClientIDMode.Static;
_maskedEditExtender.TargetControlID = this.ID;
_maskedEditExtender.MaskType = MaskedEditType.None;
_maskedEditExtender.Mask = "(999) 999-9999";
_maskedEditExtender.InputDirection = MaskedEditInputDirection.LeftToRight;
_maskedEditExtender.ClearMaskOnLostFocus = false;

_maskedEditValidator.ID = "maskedVal" + this.ID;
_maskedEditValidator.ControlToValidate = this.ID;
_maskedEditValidator.ControlExtender = _maskedEditExtender.ID;
_maskedEditValidator.InitialValue = "(___) ___-____";
_maskedEditValidator.IsValidEmpty = !Required;
_maskedEditValidator.ValidationExpression = @"^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$";
_maskedEditValidator.EmptyValueMessage = "Please enter a phone number.";
_maskedEditValidator.InvalidValueMessage = "Please enter a valid phone number.";

_maskedEditValidator.ValidationGroup = "FormsValidationGroup";
_maskedEditValidator.CssClass = "FormValidation";
_maskedEditValidator.EnableClientScript = false;

1 Ответ

0 голосов
/ 25 августа 2012

Проблема 1 ... Я так и не получил ответ о том, как это исправить, и пользователи предпочли, чтобы он отправлял сообщения каждый раз, поэтому я просто установил enableclientscript = false.

Проблема 2 ... maskedEditValidator.ValidationExpression= @ "^ [01]? [-.]? (([2-9] \ d {2}) | [2-9] \ d {2}) [-.]? \ D {3} [-.]? \ d {4} | (() _ _-_) $ ";

...