2009-07-24 46 views
1

有沒有人知道一個實際的工作jQuery插件,可以正確地擴大textarea的高度作爲文本添加到它?工作jQuery自動高度textfield插件?

我已經嘗試了autogrow和growfield插件,但都沒有效果。兩者都有問題,它們不能正常生長和/或有時忽略它們的最大高度。我在OSX上使用FF 3.5來測試FWIW。

還有第三個出現在谷歌搜索中,但是那個演示頁面甚至沒有工作,所以我沒有打算試用它。

回答

0

在處理我當前的項目時,我遇到了一個類似的問題,就是無法找到一個可靠,可靠的增長文本區域插件。我最終決定成長,但我不能說我對它太滿意了。

我碰到的一個問題是,我能夠解決的問題是,growfield(除幾乎所有其他插件之外)都堅持要在文本區域添加額外的行。這是粗略的開發代碼,且目前只解決了Safari和Firefox,但這裏的一些代碼,我加入到growfield的getDummyHeight的end()函數:

if ($.browser.safari) return h-sr.lh*2+sr.pt+sr.pb; 
if ($.browser.mozilla) return h-sr.lh*2+sr.pt*2+sr.pb+5; 

它使用瀏覽器檢測(這是不好的做法),並可能取決於我們的佈局和CSS,但您可能可以進行一些調整,以便在設計中使用它。

在你想知道的情況下(growfield有點神祕),h指textarea的高度,sr.lh指的是行高,sr.pt指的是頂部填充,sr.pb指的是底部填充。完整的變量列表在prepareSizeRelated()函數中。

0

和你一樣,我已經嘗試了很多jQuery解決方案,但最終每次都回到普通的舊javascript。假設jQuery是不是你的絕對要求,你可以使用類似以下的(需要調整XXX,以滿足您的特定文字區域,應爲〜1.3):

function resizeTextarea(textarea) { 
    currentRows = textarea.value.split('\n'); 
    newRows = 1; 
    minRows = 4; 

    for(i=0; i < currentRows.length; i++) { 
    if(currentRows[i].length > textarea.cols) { 
     newRows += Math.ceil(currentRows[i].length/textarea.cols - xxx); 
    } 
    } 

    newRows += currentRows.length; 

    if(newRows != textarea.rows) { 
    textarea.rows = newRows; 
    } 
} 
0

好了,現在還有。

這個插件叫做:自動調整,

和它是由傑克·摩爾

做檢查出來here

(我知道這個問題的日期從2009年,但也許這將有助於未來的讀者)