C# asp.net中的范围验证程序不';I don’我没有按预期工作

C# asp.net中的范围验证程序不';I don’我没有按预期工作,c#,asp.net,C#,Asp.net,我的页面中有一个文本框: <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 mo

我的页面中有一个文本框:

<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!

当我在运行时在文本框中键入任意数量的字符时,无论我键入的字母是否少于3个,范围验证器都会出现,如果我增加字母数量,范围验证器不会消失!有什么帮助吗?

您的范围验证器将验证数字是否在4到100之间,而不是文本框中的字符数

这将完成以下操作(CustomValidator):


函数clientValidate(发送方,参数){
如果(args.Value.length<4 | | args.Value.length>20){
args.IsValid=false;
}
}

范围验证器验证的是数字是否在4到100之间,而不是文本框中的字符数

这将完成以下操作(CustomValidator):


函数clientValidate(发送方,参数){
如果(args.Value.length<4 | | args.Value.length>20){
args.IsValid=false;
}
}

Rangevalidator用于检查输入的值是否介于两个值之间,而不是是否为某个长度。您似乎正在寻找的是长度验证器

 <asp:TextBox ID="txtTextBox" MaxLength="100" .../>

我认为没有内置最小长度验证器,但您可以轻松地在代码中添加一些东西

if(txtTextBox.Length < 3)
    // display error message
if(txtextbox.Length<3)
//显示错误消息
或者正则表达式验证器

<asp:RegularExpressionValidator ID="valLength" runat="server"    
    ErrorMessage="Must be between 3 and 100 characters"
    ControlToValidate="txtTextBox"    
    ValidationExpression="^[a-zA-Z0-9'@&#.\s]{3,100}$" />

Rangevalidator用于检查输入的值是否介于两个值之间,而不是是否为某个长度。您似乎正在寻找的是长度验证器

 <asp:TextBox ID="txtTextBox" MaxLength="100" .../>

我认为没有内置最小长度验证器,但您可以轻松地在代码中添加一些东西

if(txtTextBox.Length < 3)
    // display error message
if(txtextbox.Length<3)
//显示错误消息
或者正则表达式验证器

<asp:RegularExpressionValidator ID="valLength" runat="server"    
    ErrorMessage="Must be between 3 and 100 characters"
    ControlToValidate="txtTextBox"    
    ValidationExpression="^[a-zA-Z0-9'@&#.\s]{3,100}$" />

请试试这个

    <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>

功能测试()
{
if(document.getElementById('titletxt').value.length<3){
document.getElementById('spMessage').style.display='';
返回false;
}
否则{
document.getElementById('spMessage').style.display='none';
返回true;
}
}
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>

输入超过3个字符!
您可以创建此javascript并调用test()函数来验证textbox….

请尝试此

    <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>

功能测试()
{
if(document.getElementById('titletxt').value.length<3){
document.getElementById('spMessage').style.display='';
返回false;
}
否则{
document.getElementById('spMessage').style.display='none';
返回true;
}
}
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>

输入超过3个字符!

您可以创建此javascript并调用test()函数来验证textbox…

范围验证器用于检查您是否在某个范围内输入了值,例如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" />


这显然需要根据您允许的字符进行调整。范围验证器用于检查您是否在某个范围内输入了值,例如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" />



这显然需要根据您允许的字符进行调整

您到底想做什么?范围验证器用于检查您是否在某个范围内输入了值,例如0到100之间的数字。我觉得你好像在检查输入了多少字母?您可能必须使用正则表达式验证器。使用^.{4100}$选择min4 max 100char@GunnerAziz你的模式可以用于任何脂肪族系统?它没有经过测试,但应该工作你到底想做什么?范围验证器用于检查您是否在某个范围内输入了值,例如0到100之间的数字。我觉得你好像在检查输入了多少字母?您可能必须使用正则表达式验证器。使用^.{4100}$选择min4 max 100char@GunnerAzizur模式可用于任何脂肪族系统?未经测试,但应能正常工作。这将是服务器端验证。。我想要它,客户side@AyaMohammad一个有趣的点.NET验证器实际上验证了客户端和服务器端@Liath,但是我将属性(EnalbeClientScript)设置为true!抱歉,我的评论更多地针对您的原始JS-我100%同意您关于RegEx验证器的建议这将是服务器端验证。。我想要它,客户side@AyaMohammad一个有趣的点.NET验证器实际上验证了客户端和服务器端@Liath,但是我将属性(EnalbeClientScript)设置为true!抱歉,我的评论更多地针对您的原始JS-我100%同意您关于RegEx验证器的建议,这取决于正在验证的内容。如果JS被黑客攻击/篡改,您可能还需要验证服务器端off@Liath:同意,您将始终需要服务器端检查。根据正在验证的内容,您可能还需要验证服务器端,以防JS被黑客攻击/攻击off@Liath:同意,您将始终需要服务器端检查。我不想向用户弹出警报我不想向用户弹出警报此模式仅适用于英国垃圾吗@liath我给出的例子是至少三个字符的大小写字母(a-z)和数字(0-9)。如果你在正则表达式方面需要帮助,我建议你提出一个新问题。好的,谢谢,你的评论和回答向我澄清了这个问题@LiathGreat,高兴