2011-12-16 124 views
0

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

<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

强制验证考虑口罩文本有效值:

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