4

我正在尝试验证 a 中字符串的长度TextBox。页面上的控件定义如下:

<asp:TextBox runat="server" ID="TB" />
<asp:RangeValidator runat="server" ID="RV" 
MinimumValue="3" MaximumValue="20" 
ControlToValidate="TB" Type="String" />

但是当页面运行时出现运行时错误

最大值 20 不能小于最小值 3

4

4 回答 4

13

你提到 Type ,incorrect它应该是Type="Integer"Type="String"

于 2011-06-21T12:47:00.127 回答
4

只需使用 TextBox 的 MaxLength 属性。用于获取/设置文本框中允许的最大字符数。

对于最小长度,您需要使用 CustomValidator。在那个调用中检查字符串长度的 js 函数。

尝试这个:

<asp:TextBox runat="server" ID="TB" />    
<asp:CustomValidator runat="server" ID="CustomValidator1" ControlToValidate="TB"
    Text="The text length should be between 3 and 20" 
    ClientValidationFunction="clientValidate" Display="Dynamic">
</asp:CustomValidator>


<script type="text/javascript">
function clientValidate(sender, args) {
    if (args.Value.length < 3 ||args.Value.length > 20) {
        args.IsValid = false;
    }
}

于 2011-06-21T12:55:26.110 回答
3

您无法TextBox使用 a验证 a 的长度RangeValidator!! RangeValidator用于验证字段的值,而不是该值的长度。

为此,您可以使用其他方式作为CustomValidator.

于 2011-06-21T12:51:11.717 回答
0

对我有用的语法

 <asp:RegularExpressionValidator ID="RegularExpressionValidator34" runat="server" ControlToValidate="fname" 
            Display="Dynamic" ErrorMessage="email is required" ForeColor="Red" SetFocusOnError="True" 
            ValidationExpression="(\s|.){5,10}"> 
                  Length must between (5-10) characters</asp:RegularExpressionValidator>
于 2022-01-31T21:54:16.610 回答