ASP.Net多行文本框Maxlength

问题描述 投票:3回答:3

我一直在寻找一种方法来限制TextBox中的文本,如下所示

<asp:TextBox runat="server" ID="tbTest" TextMode="MultiLine"  
             MaxLength="20" Rows="5" Columns="30" >
</asp:TextBox>

MaxLength="20"属性仅在未设置其他属性TextMode="MultiLine"时才有效。它甚至没有呈现。

HTML中的输出如下所示:

<textarea name="ctl00$ContentPlaceHolder1$tbTest" 
          id="ctl00_ContentPlaceHolder1_tbTest" rows="5" cols="30">
</textarea>

如果你在这里搜索解决这个问题的解决方案,你会得到两种方法:

  • 添加(asp:RegularExpression)验证器并验证控件
  • 添加一个JavaScript,以便在达到限制时删除最后一个插入字符。

大多数答案都是2013年的预售,并且maxlength对所有浏览器的支持都是从2013年开始的,因为IE10已经发布(reference)。

目前,每个浏览器都支持此属性 - 自行测试:https://jsfiddle.net/wuu5wne1/

如何强制ASP.Net将此属性应用于我的多行文本框?

c# html asp.net webforms textbox
3个回答
2
投票

我的解决方案是在document.ready中通过jquery手动设置maxlength属性:

$(document).ready(function ()
{
    $('#<%=tbTest.ClientID%>').prop('maxlength', 20);
}

是的,它有点hacky,但如果你想使用asp控件(我不想部署代码更改),它的工作原理。


1
投票

您可以在aspx文件中使用以下代码,

<textarea runat="server" id="tbTest"
             maxlength="20"  rows="5" cols="30" >
</textarea>

希望能帮助到你!


1
投票

这个工作但它看起来很迂回 - 特别是如果这个TextBox以某种方式嵌套到数据控件中。 qazxsw poi

foo.FindControll("bar")...
© www.soinside.com 2019 - 2024. All rights reserved.