Tos*_*shi 7 html c# asp.net textbox webforms
我一直在寻找一种方法来限制 TextBox 中的文本,看起来像这样
<asp:TextBox runat="server" ID="tbTest" TextMode="MultiLine"
MaxLength="20" Rows="5" Columns="30" >
</asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
该物业 MaxLength="20"如果其他财产只能TextMode="MultiLine"是未设置。它甚至没有被渲染。
HTML 中的输出如下所示:
<textarea name="ctl00$ContentPlaceHolder1$tbTest"
id="ctl00_ContentPlaceHolder1_tbTest" rows="5" cols="30">
</textarea>
Run Code Online (Sandbox Code Playgroud)
如果您在 SO 上搜索解决此问题的解决方案,您会得到 2 种建议:
asp:RegularExpression) 验证器并验证控件但
大多数答案是 2013 年以前的maxlength,所有浏览器的支持都是从 2013 年 IE10 发布开始的(参考)。
目前每个浏览器都支持这个属性 - 请自行测试:https : //jsfiddle.net/wuu5wne1/
题
如何强制 ASP.Net 将此属性应用于我的多行文本框?
欢迎来到 2020 年 - 现在终于可以在所有浏览器上使用了
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
tbTest.Attributes.Add("maxlength", "20");
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我对此的解决方案是在 document.ready 中通过 jquery 手动设置 maxlength 属性:
$(document).ready(function ()
{
$('#<%=tbTest.ClientID%>').prop('maxlength', 20);
}
Run Code Online (Sandbox Code Playgroud)
是的,它有点 hacky,但是如果您想使用 asp 控件(我不想部署代码更改),它可以工作。
| 归档时间: |
|
| 查看次数: |
7432 次 |
| 最近记录: |