如何将文本框的宽度设置为与ASP.NET中的MaxLength相同
有没有办法将文本框的宽度限制为MaxLength属性?在现在我的情况下,TextBox控件放置在一个表格单元格在这个片段:如何将文本框的宽度设置为与ASP.NET中的MaxLength相同
<td class=TDSmallerBold style="width:90%">
<asp:textbox id="txtTitle" runat="server"
CausesValidation="true"
Text="Type a title here..be concise but descriptive. Include price."
ToolTip="Describe the item with a short pithy title (most important keywords first). Include the price. The title you provide here will be the primary text found by search engines that index Zipeee content."
MaxLength="60"
Width="100%">
</asp:textbox>
(我知道我不应该用HTML表格来控制肯定layout..another主题),但有一个如何将实际宽度限制为键入框中允许的最大字符数?
这不会是精确的,因为字符的宽度不同。但如果你真的认真对待这个问题,你可以用一些Javascript(jQuery)来完成。具体的步骤是:
- 创建一个跨屏外(上图:-1000px或东西)
- 确保跨度有相同的样式/班为您的文本框中
- 填写跨度有60个字符
- 使用jQuery测量跨度
- 的宽度应用该宽度文本框
它类似于自动扩展的文本域为y的技术OU在Facebook上看到这样的:http://james.padolsey.com/javascript/jquery-plugin-autoresize/
(在这种情况下,你正在做这水平,而不是垂直)
如果你需要真正的代码,让我知道,我会尽我所能。
我用的是HTML属性的cols
因此,对于你的例子,我会用
<td class=TDSmallerBold style="width:90%">
<asp:textbox id="txtTitle" runat="server"
CausesValidation="true"
Text="Type a title here..be concise but descriptive. Include price."
ToolTip="Blah Blah I don't like horizotal scroll-bars"
MaxLength="60"
Width="100%"
Cols="60"
>
</asp:textbox>
我从来没有尝试过,但我不知道是否有扎两者一起的方式。所以MAXLENGTH设置也设的cols,将是一个有趣的练习
你可以从你的代码(称为在你的Page_Load)这样设置:
txtTitle.Width = new Unit(txtTitle.MaxLength, UnitType.Em);
我们的系统是数据库驱动的,我们有一个存储每个可变长度属性的元数据表。我个人使用元数据迭代ControlCollection和每个TextBox项目,拉动变量的元数据的长度,然后将其分配给MaxLength和宽度,但如果你已经有MaxLength设置,你可以让它做宽度在这个方式。
我意识到这是一个老问题,但对于那些谁遇到过寻找如何风格基础上的MaxLength文本框属性我用下面的CSS人:
input[maxlength='2'] { width: 40px;}
如果你有很多的文本框与不同的MaxLengths,那么这可能不会是你的解决方案。但是,如果您想要显示一个文本框以匹配要输入的内容,我认为这是一个很好的解决方案。
$(':input[maxlength]').each(function (i, e) {$(e).width(e.maxLength * 10)});
这是使一个假设,即字符是大致 10px的。它适合我的需求。
我意识到这是一篇非常古老的文章 - 这里是我为未来其他人参考的答案!
使用Style属性将宽度设置为100%,而不是使用width属性。
例如
<td class=TDSmallerBold style="width:90%">
<asp:textbox id="txtTitle" runat="server"
CausesValidation="true"
Text="Type a title here..be concise but descriptive. Include price."
ToolTip="Blah Blah I don't like horizontal scroll-bars"
MaxLength="60"
Style="Width: 100%"
>
</asp:textbox>
这是在我工作的生产环境中尝试和测试的。它比使用Javascript更简单,适用于现有的HTML。
至于为什么这个作品,不幸的是我缺乏知识。