RegularExpressionValidator在asp.net中不起作用

时间:2014-03-19 06:40:20

标签: c# asp.net

我想在asp.net中使用多行设置文本框的MaxLength属性(例如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>

和此:

<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。 非常感谢。

2 个答案:

答案 0 :(得分:1)

将此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;
    }

}

答案 1 :(得分:1)

正在工作,但是:

  1. 验证员无法即时验证 - 因此它允许您输入任何内容,包括相当长的文本。它与maxlength属性不同,它只允许您输入超过100个字符。
  2. 您需要一些操作才能开始验证。在大多数情况下它是按钮,所以只需添加它:

    <asp:Button runat="server" Text="OK" />

  3. 您需要出现错误消息,如果验证失败,将显示给用户 - 将ErrorMessage属性添加到验证器:

    <asp:RegularExpressionValidator ... ErrorMessage="ERROR!" />

  4. 这就是它 - 键入文本,单击按钮,看到错误。

    如果您确实想要动态限制文字长度 - 那么您需要JavaScript,您可以看到样本的Specifying maxlength for multiline textbox