jQuery似乎有很多非常糟糕的自动增长textarea插件。我希望我的自动增长文本框与Facebook一样好。我希望它只适合当前行,并在需要之前添加一行。
我评论过的大多数插件都试图从字符数中猜测行高,这看起来太天真了。我已经阅读了一个创建隐藏div来计算高度的解决方案。这似乎是正确的道路,但该解决方案不是插件形式。
那里有什么能做我想要的并且易于安装?
答案 0 :(得分:44)
试试吧。 http://www.jacklmoore.com/autosize 我这里的东西是最好的。这是一个非常好的。
答案 1 :(得分:2)
我有一个只计算:http://www.mostthingsweb.com/2012/01/textarea-line-count-version-1-3-released/的插件。它使用隐藏的div方法,甚至匹配正确的字体属性。看看:)
每次用户点击文本框中的某个键时,您都可以调用该插件,然后相应地调整文本框的大小。如果你不想占用处理能力,甚至可能是其他每一把钥匙。
答案 2 :(得分:0)
function sz(t) {
dv = document.createElement("div");
dv.style.visibility="hidden";
dv.style.position="absolute";
dv.style.width=t.offsetWidth;
dv.innerHTML = t.value.replace(/\n/g, "<br>");
document.body.appendChild(dv);
t.style.height=(dv.offsetHeight+22)+"px";
dv.parentNode.removeChild(dv);
}
然后你只需使用onkeyup =“sz(this)”