【发布时间】:2017-07-05 03:15:01
【问题描述】:
我一直在寻找一种方法来限制 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>
如果您在 SO 上搜索解决此问题的解决方案,您会得到 2 种建议方法:
- 添加一个 (
asp:RegularExpression) 验证器并验证控件 - 添加一个 JavaScript,在达到限制时删除最后一个插入字符。
但是
大多数答案是 2013 年之前的,maxlength 在所有浏览器上的支持是从 2013 年 IE10 发布 (reference) 开始的。
目前每个浏览器都支持此属性 - 请自行测试:https://jsfiddle.net/wuu5wne1/
问题
如何强制 ASP.Net 将此属性应用于我的多行文本框?
【问题讨论】:
-
我认为当前的浏览器没有太大变化。您仍然需要使用 JS 或正则表达式。
-
我认为如果你从代码后面添加 MaxLength 属性它将起作用,或者使用 html
-
@ManishGoswami
<textarea>与asp:TextBox相比有什么缺点吗? -
所以你可以尝试第一个选项..从后面的代码中设置属性。还有一个选项是打开使用 jquery/javascript/正则表达式
标签: c# html asp.net webforms textbox