2011-03-13 104 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> 

有一個美好的一天..