我正在尝试验证TextBox
中字符串的长度。页面上的控件定义如下:
<asp:TextBox runat="server" ID="TB" />
<asp:RangeValidator runat="server" ID="RV"
MinimumValue="3" MaximumValue="20"
ControlToValidate="TB" Type="String" />
但当页面运行时出现运行时错误
MaximumValue 20不能小于比MinimumValue 3
如果提到类型incorrect
,它应该是Type="Integer"
而不是Type="String"
只需使用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;
}
}
不能使用RangeValidator
验证TextBox
的长度!!RangeValidator
用于验证字段的值,而不是该值的长度。
要做到这一点,您可以使用CustomValidator
等其他方式。
正确使用的语法
<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>