【问题标题】:Range Validator is not working in asp.net Minimum and Maximum Value范围验证器在 asp.net 最小值和最大值中不起作用
【发布时间】:2014-01-09 19:13:05
【问题描述】:

我已在TextBox 上申请了RangeValidator。但它总是向我显示错误:无效范围,尽管我给出了最小值 10 和最大值 25。我希望用户不能输入长度小于 10 且大于 25 的值。我希望用户可以输入任何内容,所以我在RangeValidator 中有type="string"。但它总是给我错误信息:无效范围。

<td>
    <asp:TextBox ID="tbPassword" runat="server" MaxLength="25" type="password">
    </asp:TextBox>
    <asp:RequiredFieldValidator ID="rfvPassword" runat="server" 
        ControlToValidate="tbPassword" ForeColor="red" Display="Dynamic" 
        ErrorMessage="Password is required." SetFocusOnError="true">
    </asp:RequiredFieldValidator>
    <asp:RangeValidator ID="rvPassword" ControlToValidate="tbPassword" 
        ForeColor="red" Display="Dynamic" MinimumValue="10" MaximumValue="25" 
        SetFocusOnError="true" Type="String" runat="server" 
        ErrorMessage="Invalid Range">
    </asp:RangeValidator>
</td>

【问题讨论】:

    标签: asp.net rangevalidator validation-controls


    【解决方案1】:

    为此,您需要使用 Emad Mokhtar 建议的 CustomValidator 控件。

    对于服务器端验证,创建一个这样的事件。

    protected void TextValidate(object source, ServerValidateEventArgs e)
    {
        e.IsValid = (e.Value.Length >= 10 && e.value.Length <= 25);
    }
    

    对于客户端验证,创建一个像这样的 javascript 函数。

    <script type="text/javascript">
        function validateLength(oSrc, args){
            args.IsValid = (args.Value.length >= 10 && args.Value.length <= 25);
        }
    </script>
    

    然后在你的 aspx 标记中有 CustomValidator 这样的控件。

    <asp:Textbox id="tbPassword" runat="server" text=""></asp:Textbox>
    <asp:CustomValidator id="customValidator" runat="server" 
        ControlToValidate = "tbPassword"
        OnServerValidate="TextValidate"
        ErrorMessage = "Password must be between 10 to 25 characters!"
        ClientValidationFunction="validateLength" >
    </asp:CustomValidator>
    

    您可以找到更多详细信息here

    【讨论】:

      【解决方案2】:

      此验证可以使用 CustomValidator 控件实现并应用您的客户端和服务器端验证,请查找示例 here

      【讨论】:

      • 我刚刚尝试过,但是当用户输入值时,有效或无效,它没有显示任何错误并进入但Save_Click代码后面很奇怪
      【解决方案3】:

      我最近观察到这个很酷的功能,只需使用下面的属性来设置 asp control/html。 minLength="10" maxLength="1000"

      正如属性明确指出的那样,它允许最少 10 个字符,最多 1000 个字符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-22
        • 1970-01-01
        • 2015-04-08
        相关资源
        最近更新 更多