2012-05-23 59 views
3

自動擴展textareas有很多線程。仍然沒有找到我稱之爲「完美」的一個。有一件我需要的東西,我似乎無法修復,只要用戶開始輸入,它們就會開始增長。我一直試圖解決這個問題,但沒有運氣。我不想textarea展開,直到到達行末或按下enter鍵。jQuery textarea自動增長,不要增加到行尾/輸入

http://jsfiddle.net/mstefanko/Jrpqg/65/

謝謝!

修訂答:

對於我的情況,我不僅想textarea的,只當它擊中下一行展開/輸入。但也可以在沒有文字的情況下收縮。除了提供的答案之外,我還提供了一個快速解決方案,如果textarea是空的,我還會運行css高度線。擦除時不會縮小,但至少在您擦除所有文本後會重置高度。

 if ($.trim($(this).val()) == "") { 
      $(this).css('height', Math.max(shadow.height() + 20, minHeight)); 
     } 
     if(this.scrollHeight > $this.height()) { 
      $(this).css('height', Math.max(shadow.height() + 20, minHeight)); 
     } 

回答

3

添加if語句如下:

if(this.scrollHeight > $this.height()) { 
    $(this).css('height', Math.max(shadow.height() + 20, minHeight)); 
} else if($this.height() < shadow.height() + 20) { 
    $(this).css('height', Math.max(shadow.height() + 20, minHeight)); 
} 

可以工作或可能需要更多一點的按摩,以得到它的減少作爲評價要求的尺寸工作。

+0

太棒了,謝謝你的回答!這正是我想要的,它確實打破了以前工作過的一件事。隨着你提供的聲明,刪除文本不再像以前一樣縮小盒子:http://jsfiddle.net/mstefanko/Jrpqg/85/ 我認爲總的來說,從我的當前版面的ux觀點來看,這仍然更好,但如果你知道兩種方式都可以工作,請讓我知道,非常感謝! – mstef