防止多行文本框随文本添加而拉伸

5
以下是我的HTML代码:
<table width="100%" >
  <tr>
    <td>
      <asp:TextBox ID="tbNewNote" TextMode="MultiLine" runat="server" CssClass="width:100% "/>
    </td>                                
  </tr>
</table>

textbox 填满文本时,它会扩展到屏幕边缘之外。

如何摆脱这种行为?

提前感谢您的帮助。

3个回答

13
<asp:TextBox runat="server" TextMode="MultiLine" Rows="5" Columns="20" style="resize:none;" ></asp:TextBox>

如果您在下一次回发之前以编程方式向文本框添加文本,则此方法将无效。 - shiggity
1
@shiggity,你能否进一步解释一下,如果可能的话,我会尽力提供其他帮助...... - Shubham
@BarbaraLaird 让我尝试解释一下:在 asp 中,TexMode Multiline 是 Html 中的 "TextArea" 的替代选择,Rows 5 表示高度将达到 5 行,之后会出现滚动条,Column 20 表示在一行中最多可以输入 20 个字符,之后将换行。最后,style: "resize:none" 是为了禁用输入框的垂直和水平手动调整大小。希望这能帮到你。 - Shubham
@shiggity,你可以创建一个脚本并从代码中调用它,顺便问一下,为什么你需要从代码中调用它?有特定的原因吗? - Shubham
@Shubham 嗯,就是任何需要动态设置文本的时候,比如从数据库中检索时等。 - shiggity

4

在你的CSS中创建以下类,并在你想要固定宽度的文本框中使用它:

.CSSclass{

resize:none;
}

如果你希望所有文本框都具有多行文本模式,你可以在你的css中写入以下内容:
.textarea{
resize:none;
}

这应该是官方答案,但仍无法解决Firefox或Chrome的问题。仍然有一个右下角的“抓手”,您可以拉伸框。如何避免这种情况? - Fandango68

2

请将您的代码进行以下更改:删除 CssClass="width:100%",您在这里提供的是类而不是 CSS 属性。其次,我为您的文本框添加了一个固定的宽度,现在它不会再扩展了。

 <table width="100%" >
      <tr>
       <td>
        <asp:TextBox ID="tbNewNote" TextMode="MultiLine" runat="server" Width="200px"/>
       </td>                                
      </tr>
    </table>

请注意:更好的答案在下面,由Shubham回答。为了防止多行文本框的任何调整大小,请在文本框的样式中添加以下内容:"resize:none;"。 - Icculus018

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接