2012-05-16 2 views
0

У меня есть RequiredFieldValidator. Код ниже:asp: MaskedEditExtender останавливает работу валидатора

<asp:TextBox runat="server" ID="phone" MaxLength="10" Columns="10" 
          Width="90px"></asp:TextBox> 
         <asp:MaskedEditExtender ID="phone_MaskedEditExtender" runat="server" CultureAMPMPlaceholder="" 
          CultureCurrencySymbolPlaceholder="" CultureDateFormat="" CultureDatePlaceholder="" 
          CultureDecimalPlaceholder="" CultureThousandsPlaceholder="" CultureTimePlaceholder="" 
          Enabled="True" TargetControlID="phone" Mask="(999)999-9999" ClearMaskOnLostFocus="False"> 
         </asp:MaskedEditExtender> 
         <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidatorPhone" ControlToValidate="phone" 
          ErrorMessage="Phone is required." Display="Dynamic" InitialValue="" /> 

Если удалить жерех: MaskedEditExtender, функции RequiredFieldValidator, как и ожидалось. В противном случае, похоже, валидатор теряет свою функциональность.

Почему? Спасибо.

ответ

0

Ваш MaskedEditExtender не делает ничего, кроме объявления маски, и помещает себя вместо значения вашего ввода.

Все эти культуры не нужны в случае телефонного номера.

Что такое выражение валидации?

Вся точка MaskedExtender предназначена для управления типом ввода. Если вы используете ASP, вы можете сделать это, потянув из базы данных и ограничив максимальную длину поля.

Вот пример.

<cc1:MaskedEditExtender ID="MaskedEditExtender1" 
        runat="server" 
        TargetControlID="txtClientLookupValue" 
        Mask="999999-9999" 
        ClearMaskOnLostFocus="false"> 
</cc1:MaskedEditExtender> 

<cc1:MaskedEditValidator ID="MaskedEditValidator1" 
        ControlExtender="MaskedEditExtender1" 
        runat="server" 
        ControlToValidate="txtClientLookupValue" 
        IsValidEmpty="True" 
        InvalidValueMessage="INVALID" 
        ValidationExpression="^[2-9][0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$" 
        Display="Dynamic">  
</cc1:MaskedEditValidator> 

А вот ссылка:

MaskedEditExtenderLinkASP

Good Luck.

+0

My validationExpression: "\ (\ d {3} \) \ s \ d {3} - \ d {4} $" –

0

Вот как я делаю телефонные номера в ASP.NET (маска и проверка). Просто пытаюсь помочь!

  <div> 
       <asp:ScriptManager ID="ScriptManager1" runat="server"> 
       </asp:ScriptManager> 


       <asp:TextBox ID="txb_HomePhoneNumb" 
        Cssclass="BoxStyleHireAppCityStateZip" runat="server" 
        Width="175" MaxLength="12"> 
       </asp:TextBox> 

       <%--MaskedEditExtender Created with: ASP.NET AJAX Control 
        Toolkit: https://ajaxcontroltoolkit.codeplex.com--%> 

       <cc1:MaskedEditExtender ID="MaskedEditExtenderHomePhoneNumb" 
        runat="server" 
        TargetControlID="txb_HomePhoneNumb" 
        ClearMaskOnLostFocus ="false" 
        MaskType="None" 
        Mask="(999) 999-9999" 
        MessageValidatorTip="true" 
        InputDirection="LeftToRight" 
        ErrorTooltipEnabled="True" 
       /> 

       <asp:RegularExpressionValidator runat="server" 
        ControlToValidate="txb_HomePhoneNumb" style="color:red;" 
        CssClass="display-next" 
        ErrorMessage="*Not a valid phone number!" 
        ValidationExpression="^\D?(\d{3})\D?\D?(\d{3})\D? 
               (\d{4})$" Font-Size="Medium"> 
       </asp:RegularExpressionValidator> 
      </div> 
Смежные вопросы