2011-03-13 105 views
-1

我想构建一个textarea,其宽度将在插入文本时动态增加。如何在输入文本时自动增加textarea的宽度?

我发现许多脚本可以通过改变它的高度来动态调整textarea的大小,但没有任何东西符合我的需求。

那么你知道任何可以帮助吗?

+0

香港专业教育学院试图用这样的东西HTTP: //plugins.jquery.com/project/autogrowtextarea,但我只得到textarea的垂直扩展 – antonis 2011-03-13 16:29:36

+3

您需要修改其中一个脚本来改变宽度而不是高度。 – SLaks 2011-03-13 16:32:13

+0

所以,你真的试图写你自己的水平宽度扩展插件?有关于如何编写自己的垂直扩展器的教程(如[this one](http://blogs.sitepoint.com/2009/07/29/build-auto-expanding-textarea-2/))应该是非常容易适应水平扩展。但是,我不得不质疑这一点的有用性。你为什么要textarea水平扩展?这只是简单的讨厌,国际海事组织。 – 2011-03-13 16:33:35

回答

0

给textarea一个ID。如果textarea内的字体是等宽字体很简单。如果不是有点复杂(创建一个字符宽度的分布函数,请平均使用它)。

在一个或的onkeyup事件onkeypressed使用类似

if (document.getElementById('yourid').value.lenght>defaultValue) 
{ 
    defaultValue = defaultValue+charWidth; 
    document.getElementById('yourid').width = (defaultValue+charWidth)+'px';  
} 
2

这可能帮助..

<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> 

有一个美好的一天..