2013-12-12 31 views
0

我正在评论像Facebook一样的文字区域。我尝试通过计算cols和value的长度来做到这一点。但符号(“l”或“a”)的大小不一样。我怎样才能做文字区域像Facebook的JavaScript和不使用任何插件? 我的代码是这样的:如何在javascript中更改文字区域的高度,如Facebook?

<textarea cols="50" rows="1" onkeydown="comChangeHeight(this);"></textarea> 
<script type="text/javascript"> 
function comChangeHeight(obj) { 
    var id = obj.id; 
    var length - obj.value.length; 
    obj.rows = Math.ceil(length/obj.cols); 
} 
</script> 
+0

你目前的代码是什么样的? – admdrew

+0

添加到问题。 – iProgrammer

回答

2

我写了这个代码:

window.onload = function() { 
    var t = document.getElementsByTagName('textarea')[0]; 
    var offset= !window.opera ? (t.offsetHeight - t.clientHeight) : (t.offsetHeight + parseInt(window.getComputedStyle(t, null).getPropertyValue('border-top-width'))) ; 

    var resize = function(t) { 
     t.style.height = 'auto'; 
     t.style.height = (t.scrollHeight + offset) + 'px';  
    } 

    t.addEventListener && t.addEventListener('input', function(event) { 
     resize(t); 
    }); 

    t['attachEvent'] && t.attachEvent('onkeyup', function() { 
     resize(t); 
    }); 
} 

我认为它可以帮助别人了。