2014-03-19 57 views
0

我想在asp.net中設置多行文本框的MaxLength屬性(例如100個字符)。 我不想使用JavaScript解決方案。我已經使用:RegularExpressionValidator在asp.net中不起作用

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

回答

1

工作,但:

  1. 驗證器不會在飛行驗證 - 所以它可以讓你輸入任何內容,其中包括相當長的文本。它不像maxlength屬性,它不允許你輸入超過100個字符。
  2. 您需要一些操作才能開始驗證。在大多數情況下,它是按鈕,那麼只需要添加它:

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

  3. 你需要的錯誤信息,這將顯示給用戶,如果驗證失敗 - ErrorMessage屬性添加到驗證:

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

就是這樣 - 鍵入文字,點擊按鈕,看錯誤。

如果你想限制在飛行文本長度 - 那麼你需要的JavaScript,你可以看到樣品Specifying maxlength for multiline textbox

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

} 
+0

感謝這個問題,但我已經在我的問題說:我不想使用JavaScript的解決方案! –

+0

使用此正則表達式「(\ s |。){0,100} $」 –

相關問題