对于我的生活,无法找到这个问题的答案,尽管我的期望是多么普遍。
但我有一个表单,所有文本框目前都是单行,90%的时间足以满足此表单的需要。在某些情况下,提交需要更大的文本条目,并且我已经给出的请求是,为了形式美学,文本框保持为单行,除非文本填充它,在这种情况下它动态地更改为多行。 / p>
这样的事情可能吗?我希望有某种事件,最好使用c#codebehind,当超过一定数量的字符时,或当文本超出文本框的宽度时,它会转换为多行。
非常感谢您的帮助!
答案 0 :(得分:2)
您可以轻松地将它们全部设为多行,但指定为一行。
然后在输入JS事件时捕获长度,如果超过指定的长度,则向其中添加行。
//pseudo code
<asp:TextBox runat="server" ID="txt2" TextMode="MultiLine" Rows="1" onchange="resizeBox(this)"></asp:TextBox>
function resizeBox(el){
if (el.value.length > 20 && el.rows == 1)
el.rows = 4;
}