【发布时间】:2011-06-17 14:14:37
【问题描述】:
有没有办法检测输入(type=text)元素的内容(值)是否超过其大小?
在 Internet Explorer 中,如果为真,scrollWidth 属性将大于 style.width。然而,在 Firefox 中,scrollWidth 总是等于 style.width 并且是一个已知的错误(https://bugzilla.mozilla.org/show_bug.cgi?id=343143),可能不是错误,因为 Mozilla 根本不认为输入元素是“可滚动的”,但仍然如此。根据这一观点,Firefox 的 textarea 元素确实在内容溢出边界时正确设置了 scrollWidth 属性。
目前,我唯一的想法是:
(a) 改用 textarea 元素并以某种方式将其限制为单行输入
要么
(b) 在输入的每个 keyup 事件中,将内容复制到形状相似的 div 元素中,并查看其scrollWidth 属性。
在 FF 中是否有更好的方法来实现这一点?
【问题讨论】:
-
如何比较字符串的
length和文本框的size属性? -
@jnpcl - 只有在
input元素上未使用固定宽度字体和 css 样式时,这才有效。对于可变宽度字体或要显式定义input元素宽度的情况(例如style="width:100px;"),仅检查长度是不够的。
标签: javascript html firefox dom input