MaskedEditExtender验证问题

时间:2011-12-16 06:50:56

标签: asp.net ajaxcontroltoolkit

我有美国电话号码的文本框。为此,我使用MaskedEditExtender和RegularExpressionValidator来检查用户是否以正确的格式输入了数字。以下是代码:

<ajax:MaskedEditExtender ID="meePhoneNumber" runat="server" Mask="999-999-9999" TargetControlID="tbComapnyPhoneNumber" MaskType="Number" ClearMaskOnLostFocus="false" AutoComplete="false" MessageValidatorTip="true" ErrorTooltipEnabled="true" />

<asp:RegularExpressionValidator ID="revCompanyPhone" runat="server" ValidationExpression="((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}( x\d{0,})?" ControlToValidate="tbComapnyPhoneNumber" ErrorMessage="Please enter a valid phone number" Display="Dynamic" />

现在,当我保存数据时,它会验证文本框,即使它不是必需的字段验证器。当我将ClearMaskOnLostFocus更改为true时,即使我将etxtbox保留为空,它也会保存数据,但是当我将其更改为false时,它不会让我保存。

1 个答案:

答案 0 :(得分:1)

强制验证器将掩码文本视为有效值:

ValidationExpression="(((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}( x\d{0,})?)|(^___-___-____$)"