2010-05-10 28 views

cevap

2

Bu çok basit bir çözümdür, ama benim için çalışıyor:

<!--TEXT-AREA--> 
 
<textarea id="textBox1" name="content" TextMode="MultiLine" onkeyup="setHeight('textBox1');" onkeydown="setHeight('textBox1');">Hello World</textarea> 
 

 
<!--JAVASCRIPT--> 
 
<script type="text/javascript"> 
 
function setHeight(fieldId){ 
 
    document.getElementById(fieldId).style.height = document.getElementById(fieldId).scrollHeight+'px'; 
 
} 
 
setHeight('textBox1'); 
 
</script>

+2

Kutunun yüksekliği * her * tuş darbesiyle artar, sadece yeni satırlar değil, hatta geri silme ve silme yüksekliğinin artmasına neden olur.Ayrın, ve geri not alırsınız – Birrel

+0

IE don 'gibi bazı tarayıcılar . t hesapla scrollheight oldukça düzgün, konuların bu türlü neden olabilir olanı yanı ... – KthProg

+1

burada çözümdür Chrome'da benim için oluyor aldırma (düzenleme kuyruğu dolu): ' 'temel olarak, aşağıdakilerden dolayı önce yüksekliği 1 piksele ayarlamanız gerekir: http://stackoverflow.com/questions/10722058/height-of-textarea-increases-when-value-increased-but-does- Ne zaman azaltma-değer-değer – KthProg

5

jQuery ile çalışan bir işlev (yalnızca yükseklik değil, genişlik için):

function setHeight(jq_in){ 
    jq_in.each(function(index, elem){ 
     // This line will work with pure Javascript (taken from NicB's answer): 
     elem.style.height = elem.scrollHeight+'px'; 
    }); 
} 
setHeight($('<put selector here>')); 

Not: Javascript kullanmayan bir çözüm için sorulan op Ancak bunun bu soruya rastlamak çok kişiye yardımcı olmalıdır.

3

tek hat sadece

<textarea name="text" oninput='this.style.height = "";this.style.height = this.scrollHeight + "px"'></textarea> 
+0

bu sadece iki oyu var. Bu inanılmaz Martin. Bunu çözmek için 30 dakika harcıyorum. Harika iş. –

İlgili konular