有沒有人知道一個實際的工作jQuery插件,可以正確地擴大textarea的高度作爲文本添加到它?工作jQuery自動高度textfield插件?
我已經嘗試了autogrow和growfield插件,但都沒有效果。兩者都有問題,它們不能正常生長和/或有時忽略它們的最大高度。我在OSX上使用FF 3.5來測試FWIW。
還有第三個出現在谷歌搜索中,但是那個演示頁面甚至沒有工作,所以我沒有打算試用它。
有沒有人知道一個實際的工作jQuery插件,可以正確地擴大textarea的高度作爲文本添加到它?工作jQuery自動高度textfield插件?
我已經嘗試了autogrow和growfield插件,但都沒有效果。兩者都有問題,它們不能正常生長和/或有時忽略它們的最大高度。我在OSX上使用FF 3.5來測試FWIW。
還有第三個出現在谷歌搜索中,但是那個演示頁面甚至沒有工作,所以我沒有打算試用它。
I think this SA answer should help完全不是JQuery,但代碼很小,可以自己實現。
在處理我當前的項目時,我遇到了一個類似的問題,就是無法找到一個可靠,可靠的增長文本區域插件。我最終決定成長,但我不能說我對它太滿意了。
我碰到的一個問題是,我能夠解決的問題是,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()函數中。
和你一樣,我已經嘗試了很多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;
}
}