我的页面中有一个文本框的RV:
<asp:RangeValidator ID="titleRV" runat="server" ControlToValidate="titletxt" Font-Bold="True" Font-Size="Small" ForeColor="Red" MinimumValue="4" MaximumValue="100" Type="Integer" SetFocusOnError="True" Display="Dynamic" >Must be more than 3 !</asp:RangeValidator>
当我在运行时在文本框中键入任意数量的字符时,无论我输入的字母是否少于3个,都会显示范围验证器,如果我增加了字母数,它就不会消失!有什么帮助吗?
答案 0 :(得分:2)
Rangevalidator用于检查输入的值是否介于两个值之间,而不是它是一定长度。您似乎要寻找的是长度验证器
<asp:TextBox ID="txtTextBox" MaxLength="100" .../>
我认为内置的最小长度验证器并不存在,但您可以轻松地在后面的代码中添加一些东西
if(txtTextBox.Length < 3)
// display error message
或正则表达式验证器
<asp:RegularExpressionValidator ID="valLength" runat="server"
ErrorMessage="Must be between 3 and 100 characters"
ControlToValidate="txtTextBox"
ValidationExpression="^[a-zA-Z0-9'@&#.\s]{3,100}$" />
答案 1 :(得分:2)
范围验证器旨在检查您是否输入了范围内的值 - 例如0到100之间的数字。听起来我觉得您正在尝试检查输入了多少个字母?
假设我已经正确理解我的建议是使用RegEx验证器。
您可以使用如下表达式:
<asp:RegularExpressionValidator ID="valLength" runat="server"
ErrorMessage="Your text must be between 3 and 100 characters"
ValidationExpression="^[0-9a-zA-Z]{3,}$"
ControlToValidate="txtTextBox" />
这显然需要根据您允许的字符进行调整
答案 2 :(得分:1)
您的范围验证器会验证该数字是否在4到100之间,而不是文本框中的字符数。
这将解决问题(CustomValidator):
<asp:TextBox runat="server" ID="titletxt" />
<asp:CustomValidator runat="server" ID="CustomValidator1" ControlToValidate="titletxt"
Text="The text length should be between 4 and 20"
ClientValidationFunction="clientValidate" Display="Dynamic">
</asp:CustomValidator>
<script type="text/javascript">
function clientValidate(sender, args) {
if (args.Value.length < 4 ||args.Value.length > 20) {
args.IsValid = false;
}
}
答案 3 :(得分:1)
请试试这个......
<script type="text/javascript">
function test()
{
if (document.getElementById('titletxt').value.length < 3) {
document.getElementById('spMessage').style.display = '';
return false;
}
else {
document.getElementById('spMessage').style.display = 'none';
return true;
}
}
</script>
... HTML
<asp:TextBox runat="server" ID="titletxt" onblur="return test()"></asp:TextBox>
<span id='spMessage' style="font-weight:bold; font-size:small; color:Red; display:none">Enter more than 3 char!</span>
您可以创建此javascript和调用test()函数来验证文本框....