如何为多行TextBox设置maxlength?

Tim*_*kov 11 asp.net textbox

使用MultiLine TextBox(生成TextArea)设置时,MaxLength属性无效.什么是最好的解决方法?我希望得到基本的,预期的功能,最少的丑陋javascript等.只是防止用户输入超过最大字符数.

Axi*_*ili 24

如果您不关心旧浏览器(请参阅此处支持的浏览器),
您可以像这样设置MaxLength

<asp:TextBox ID="txt1" runat="server" TextMode="MultiLine" MaxLength="100" />
Run Code Online (Sandbox Code Playgroud)

并强制它打印到HTML

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
    txt1.Attributes.Add("maxlength", txt1.MaxLength.ToString());
}
Run Code Online (Sandbox Code Playgroud)


Cla*_*edi 5

如果您想让用户知道他是否超过了他写的字符数量,您可以使用附加到按键事件的javascript函数.如果达到maxlenght,此函数将测试输入的长度并取消字符渲染.

另一种选择是使用RegularExpressionValidator控件来验证提交时的输入.

在我看来,第一种选择更好.

我没有添加任何代码,因为谷歌充满了各种口味的例子,这是一个非常常见的任务.

在这里,您可以获得可能有用的示例搜索.


ank*_*put 5

嘿pukipuki你可以做如下:

<asp:TextBox ID="txtValue" runat="server"TextMode="MultiLine" Rows="10"Columns="50"></asp:TextBox>

 $(document).ready(function(){ 
 var MaxLength = 250; 
 $('#txtValue').keypress(function(e) 
 { 
     if ($(this).val().length >= MaxLength)
 {    
    e.preventDefault();
 }  
 });});
Run Code Online (Sandbox Code Playgroud)

您可以在以下链接中查看更多内容:http: //jquerybyexample.blogspot.in/2010/10/set-max-length-for-aspnet-multiline.html

  • 虽然这会阻止用户输入更多文本,但它也会阻止他们使用框中的删除键或退格键(或任何其他键),因此一旦达到限制,他们就无法实际编辑文本. (6认同)
  • 不适用于复制和粘贴 (3认同)