1

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

<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>
4

3 回答 3

7

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

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

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>

您可以在此处找到更多详细信息。

于 2014-01-09T19:45:52.303 回答
1

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

于 2014-01-09T19:24:59.653 回答
0

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

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

于 2016-03-29T19:44:45.003 回答