2012-02-07 48 views
0

我需要使用Texbox Textmode =「Multiline」或html textarea創建用戶控件。調整Textbox/textarea的大小以適應文字

當處於編輯模式時,Textbox/textarea必須可以調整大小。我可以使用一些jquery插件。但在只讀模式下,這個Textbox/textarea被禁用,它必須自動調整大小(高度)以適應文本。即使文本需要頁面。我可以隱藏文本框/ textarea在只讀模式,並在div中顯示文本,但我想保持編輯和只讀頁面看起來一樣。

任何想法?

+0

不知道這是否會幫助你,但[css-tricks](http://css-tricks.com/textarea-tricks/)有一些東西。見編號7. – 2012-02-07 20:16:33

回答

1

爲什麼textarea /輸入處於只讀模式 - 與使用js在該控件和DIV或P標記之間來回切換(顯示文本),其中只需設置高度(或將其設置爲height:auto)該框會自動調整大小以包含所有文本?另外,除非你周圍的內容不允許這樣做,否則啓用調整textarea給用戶的大小;除非你周圍的內容不允許這樣做,看到http://davidwalsh.name/textarea-resize

+0

我不喜歡它,因爲它使得頁面在編輯/只讀模式下看起來不同。其他屏幕在這兩種模式下看起來相同,所以我寧願用那個新屏幕來堅持。但是,如果我願意,我會在服務器端顯示/隱藏控件。在JS中執行它有時會使控件出現並在一段時間後消失。 – 2012-02-07 22:10:49

+0

你可以邊框一個DIV,使它看起來完全像你的textarea(反之亦然)。我不同意POST到服務器是POSSIBLE JS/DHTML閃爍的更好的解決方案(在這種情況下,我懷疑會有什麼),因爲POST會延遲更多的顯示/隱藏過程(加上你有不必要的服務器旅程和服務器重建頁面,然後應用程序擊中數據庫和會話存儲,什麼不是,所有這些都不需要)。 – 2012-02-07 22:28:32

+0

此外,實現你想要的東西的唯一正確方法是創建一個不可見的DIV,將其寬度,邊距,填充,邊框,字體系列,字體大小(我錯過了什麼)設置爲與textarea中相同,向它添加文本,然後測量其高度,然後將該高度設置爲textarea,然後最後刪除臨時DIV。例如,同樣的方法用於截斷(省略號)文本。所以,你有一個DIV。所以,我想,我只是放棄了另一種方式去做你想做的事情:) – 2012-02-07 22:34:36

相關問題