2011-12-16 122 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,})?)|(^___-___-____$)"