jQuery - 根据值的宽度调整表单输入的大小?
Is it possible to get input's value width and resize the input dynamically so the value will fit?
Here's an example:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
这是 jQuery 代码:
http://jsfiddle.net/bzBdX/7/
Here is the jQuery code :
http://jsfiddle.net/bzBdX/7/
我在 GitHub 上有一个 jQuery 插件: https://github.com/MartinF/jQuery.Autosize。输入
它反映输入的值,因此它可以计算实际长度,而不是猜测或提到的其他方法。
您可以在这里看到一个实例: http://jsfiddle.net/jw9oqz0e/
示例:
您只需使用如果你想要好的效果,可以使用 css 设置最小/最大宽度并在宽度上使用过渡。
您可以将到末尾的空间/距离指定为输入元素上 data-autosize-input 属性的 json 表示法值。
当然你也可以使用 jQuery 来初始化它
I have a jQuery plugin on GitHub: https://github.com/MartinF/jQuery.Autosize.Input
It mirrors the value of the input so it can calculate the actual length instead of guessing or other approaches mentioned.
You can see an live example here: http://jsfiddle.net/jw9oqz0e/
Example:
You just use css to set min/max-width and use a transition on the width if you want a nice effect.
You can specify the space / distance to the end as the value in json notation for the data-autosize-input attribute on the input element.
Of course you can also just initialize it using jQuery
目前的答案太复杂了。这是一个快速的
添加上述内容到输入 keydown/up/press 事件是微不足道的。
在镀铬中测试
Current answers were waay to complicated. Heres a quick one
Adding the above to input keydown/up/press events is trivial.
Tested in chrome
简单的事情:
您可以根据个人喜好/文本大小更改乘数
示例:http://jsfiddle.net/bzBdX /6/
Something simple :
You could change the multiplier on personal preference / text-size
Example : http://jsfiddle.net/bzBdX/6/
http://jsfiddle.net/bzBdX/11/
所以我做了一个例子,它尝试计算宽度为
在跨度中插入字母并计算宽度
可能有更好的方法来做到这一点。
http://jsfiddle.net/bzBdX/11/
So i made an example where it tries to calculate the width by
inserting letters in a span and calculating there width
Theres probably a much better way of doing this.
正如@ManseUK 所提到的。这条线对我有用。
jQuery 版本 1.8
As mentioned by @ManseUK. This line worked for me.
JQuery version 1.8
所有这些基于字符数的解决方案都非常弱,因为如果不是单型字体,每个字符可能具有不同的宽度。我正在解决这个问题,方法是创建一个包含具有相同字体属性的文本输入值的 div,并获取其宽度作为所需的宽度。
像这样的事情:
All those solutions based on number of characters are quite weak, because each character could be of a different width if it is not a monotype font. I'm solving this problem with creating a div containing value of text input with the same font properties and getting its width as a required one.
Something like this:
此示例已在 Chrome 25 和 Firefox 19 上进行了测试。 (http://jsfiddle.net/9ezyz/)
this example as been tested on Chrome 25 and Firefox 19. (http://jsfiddle.net/9ezyz/)
您可以在 js fiddle 上查看此演示... http://jsfiddle.net/ninadajnikar/bzBdX/9 / 。
您可以根据需要更新宽度值
You can check this demo on js fiddle ... http://jsfiddle.net/ninadajnikar/bzBdX/9/ .
You update the width values as you like it