0

我有一个RequiredFieldValidator。代码如下:

 <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=""  />

如果我删除 asp:MaskedEditExtender,RequiredFieldValidator 会按预期运行。否则,验证器似乎失去了它的功能。

为什么?谢谢。

4

2 回答 2

1

您的 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

祝你好运。

于 2012-05-16T20:01:58.443 回答
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>
于 2017-10-05T10:56:05.593 回答