繁体   English   中英

为什么我的RangeValidator不工作?

[英]Why isn't my RangeValidator working?

我不止一次成功地使用了验证器,但经过一些编程后,我的验证器没有工作。也许我不知道为同一个控件定义2个验证器,但它也不适用于控件中的一个验证器。以下是我的代码的两个示例:

示例1:一个必填字段验证器和一个用户名“最大值”验证器:

<asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server"
                                  ControlToValidate="UserNameTextbox" ForeColor="red"
                                  Display="Dynamic"  ErrorMessage="Required" />

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="UsernameTextbox"  MinimumValue="1" MaximumValue="20"  ForeColor="red"  
    Display="Dynamic"   ErrorMessage="Name must contain maximum 20 characters"></asp:RangeValidator>

示例2:roadaddress的一个“最大值”验证器(字符串):

 <asp:RangeValidator ID="RangeValidator9" runat="server" MaximumValue="50"  ForeColor="red"
          ErrorMessage="Road Address must contain maxmum 50 characters" ControlToValidate="RoadAddressTextbox"></asp:RangeValidator>

我认为问题可能在display属性或causevalidation属性中,我不使用...

这不是RangeValidator的用途。 RangeValidator用于检查输入以确保它在一定范围内,即确保数字在1到5之间,日期在一定范围内,等等。

你需要的是RegularExpressionValidator

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
    ControlToValidate="UserNameTextbox"
    ErrorMessage="Username must be between 1 and 50 characters" 
    ValidationExpression="^[a-zA-Z\s]{1,50}">
</asp:RegularExpressionValidator>

编辑:将表达式更新为^[a-zA-Z\\s]{1,50}

RangeValidators不验证输入中的字符数,它们“ 检查输入控件的值是否在指定的值范围内”

实际上,您可以在没有Validator的情况下执行此操作,方法是在文本框中设置MaxLength属性,这将限制输入到其中的字符数。

<asp:TextBox ID="UserNameTextbox" MaxLength="50" runat="server"></asp:TextBox>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM