我正在寻找一种方法来限制文本框内的文本,这看起来像蜜蜂
<asp:TextBox runat="server" ID="tbTest" TextMode="MultiLine"
MaxLength="20" Rows="5" Columns="30" >
</asp:TextBox>
仅当未设置其他属性TextMode =“ MultiLine”时,属性MaxLength =“ 20”才有效.它甚至没有被渲染.
HTML中的输出如下所示:
<textarea name="ctl00$ContentPlaceHolder1$tbTest"
id="ctl00_ContentPlaceHolder1_tbTest" rows="5" cols="30">
</textarea>
如果您在此处搜索解决此问题的解决方案,则有2种建议方法:
>添加一个(asp:RegularExpression)验证器并验证控件
>添加JavaScript,以在达到限制时删除最后一个插入字符.
但
多数答案是prevois 2013,所有浏览器对maxlength的支持始于2013年IE10发布(reference).
当前,每个浏览器都支持此属性-自行测试:https://jsfiddle.net/wuu5wne1/
题
如何强制ASP.Net将此属性应用于多行文本框?
解决方法:
我的解决方案是通过document.ready中的jquery手动设置maxlength属性:
$(document).ready(function ()
{
$('#<%=tbTest.ClientID%>').prop('maxlength', 20);
}
是的,这有点笨拙,但是如果您想使用asp控件(我不想部署代码更改),它就可以工作.