2012-06-19 12 views
5

http://jsfiddle.net/h2vMN/1/boyutlandırma bu dinamik dolu olacak gerçek uygulamada zaten içindeki bir metin kutusu metin var içeriğin

göre otomatik metin kutusu, ancak önceden doldurulmuş Bu sorunun uğruna.

Yukarıdaki kodu çalıştırdığımda, üzerinde kaydırma çubukları bulunan küçük bir metin alanı gösterilir. Başka bir deyişle, kullanıcı dostu olmak açısından tamamen işe yaramaz. Metin kutusunu, içerdikleri içerik miktarına göre otomatik olarak yeniden boyutlandırır ve 600 piksellik bir genişliğe sahiptir.

#textarea{width:600px;}​ 

Bir javascript/jquery çözümü istiyorum.

burada bulabilirsiniz Ben başarısız .autoresize çözüm denedi

:

http://james.padolsey.com/demos/plugins/jQuery/autoresize.jquery.js/view

Not, yükseklik

+0

olası yinelemenin [JAVASCRIPT: Bir metin içinde metin yüksekliğini nasıl alabilirim] alabilmesi için biraz daha oynamanız gerekecek (http://stackoverflow.com/questions/3341 496/javascript-nasıl-in-the-metin-içinde-of-a-textarea) – jcolebrand

cevap

2

Thy bu:

$(document).ready(function(){ 
    tx = $('#textarea') 
    tx.height(tx.prop('scrollHeight')); 
}) 

DEMO

+0

itiraf ediyorum, bu benimkinden daha iyi bir çözüm. Ama benimki de javascript gibi eğlenceli şeyler yapıyor: p – jcolebrand

1
$(document).ready(function(){ 
    var heightFudgeFactor = 10; 
    var id = 'tempid' + Date.now(); 
    $('#textarea').after($('<div>').css('font-family','monospace').css('white-space','pre-wrap').css('word-wrap','break-word').attr('id',id).css('width',$('#textarea').width()).text($('#textarea').text())); 
    $('#textarea').css('height',$('#'+id).outerHeight() + heightFudgeFactor).next().remove(); 
});​ 

İşte, içeriğine göre, textarea yüksekliği olan bir ikincil div yaratıyorum bunu yapmanın bir yolu, ancak' gerçek beğeninize

+0

Bunu diğer tarayıcılarda, sadece Chrome'da test etmediğimi unutmayın çünkü başlamanıza yardımcı olacak temel bir çözüm arıyordum. – jcolebrand

+0

bu iyi bir çözümdür :) –

+0

Bunu ebeveyn ile eşleşen bir kutu oluşturmak için zorlar, ancak div biçiminde, ancak bunun, diğer öğelerin boyutuna ve sayısına bağlı olarak sayfada bir titreme oluşturabileceğini biliyorum. c'est la vie. – jcolebrand

İlgili konular