[英]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.