正则表达式验证器在asp.net中不起作用
本文关键字:net 不起作用 asp 验证 正则表达式 | 更新日期: 2023-09-27 17:50:50
我想设置一个文本框的MaxLength属性与多行在asp.net(例如100个字符)。我不想使用javascript解决方案。我用过:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox1" SetFocusOnError="true" ValidationExpression="^[a-zA-Z.]{0,100}$"></asp:RegularExpressionValidator>
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="109px" Width="274px" ></asp:TextBox>
</div>
</form>
</body>
</html>
和this:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:RegularExpressionValidator ID="rgConclusionValidator2" ControlToValidate="TextBox1" ValidationExpression="^['s'S]{0,100}$" runat="server" SetFocusOnError="true" /></asp:RegularExpressionValidator>
<asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="109px" Width="274px" ></asp:TextBox>
</div>
</form>
</body>
</html>
,但没有一个工作。我测试了最新的ie, firefox, chrome, opera。谢谢。
是工作,但是:
-
Validators不会在运行中进行验证-因此它允许您输入任何内容,包括相当长的文本。它不像
maxlength
属性那样不允许输入超过100个字符。 -
您需要一些操作来启动验证。在大多数情况下,它是按钮,所以只需添加它:
<asp:Button runat="server" Text="OK" />
-
您需要错误信息,如果验证失败将显示给用户-添加
ErrorMessage
属性到验证器:<asp:RegularExpressionValidator ... ErrorMessage="ERROR!" />
就是这样-键入文本,点击按钮,看到错误。
如果您想要动态地限制文本长度—那么您需要JavaScript,您可以在示例中看到这个问题:指定多行文本框的maxlength
使用这个JavaScript函数maxlength并在OnKeypress上调用它。
function checktextarea(textvalue,message,limit)
{
var str="";
var str=textvalue.value;
if((str.length > limit ))
{
alert('Error : '+message + limit + ' characters'n'+ ' You entered text with Length '+str.length);
textvalue.focus()
return false;
}
else
{
return true;
}
}