我想构建一个textarea,其宽度将在插入文本时动态增加。如何在输入文本时自动增加textarea的宽度?
我发现许多脚本可以通过改变它的高度来动态调整textarea的大小,但没有任何东西符合我的需求。
那么你知道任何可以帮助吗?
我想构建一个textarea,其宽度将在插入文本时动态增加。如何在输入文本时自动增加textarea的宽度?
我发现许多脚本可以通过改变它的高度来动态调整textarea的大小,但没有任何东西符合我的需求。
那么你知道任何可以帮助吗?
给textarea一个ID。如果textarea内的字体是等宽字体很简单。如果不是有点复杂(创建一个字符宽度的分布函数,请平均使用它)。
在一个或的onkeyup事件onkeypressed使用类似
if (document.getElementById('yourid').value.lenght>defaultValue)
{
defaultValue = defaultValue+charWidth;
document.getElementById('yourid').width = (defaultValue+charWidth)+'px';
}
这可能帮助..
<textarea id="tarea" onkeypress="change()" style="width:200;"> </textarea>
<script type="text/javascript">
function change() {
var a = document.getElementById('tarea');
var len = a.value.length;
a.style.width = 200 + len;
alert(a.style.width);
}
</script>
有一个美好的一天..
香港专业教育学院试图用这样的东西HTTP: //plugins.jquery.com/project/autogrowtextarea,但我只得到textarea的垂直扩展 – antonis 2011-03-13 16:29:36
您需要修改其中一个脚本来改变宽度而不是高度。 – SLaks 2011-03-13 16:32:13
所以,你真的试图写你自己的水平宽度扩展插件?有关于如何编写自己的垂直扩展器的教程(如[this one](http://blogs.sitepoint.com/2009/07/29/build-auto-expanding-textarea-2/))应该是非常容易适应水平扩展。但是,我不得不质疑这一点的有用性。你为什么要textarea水平扩展?这只是简单的讨厌,国际海事组织。 – 2011-03-13 16:33:35