使用Javascript </textarea>自动滚动<textarea>

时间:2010-09-09 20:49:33

标签: javascript textarea autoscroll

我有这个textarea显示输入的文本,但当行数超过textarea的大小和宽度时,用户必须向下滚动才能看到他们上次输入的内容。

每次按下输入按钮时,我都希望将textarea设置到底部。

我尝试了以下内容,但我无法让它发挥作用:

function inputKeyDown(evt, input) {    
    if (evt.keyCode == 13) {    
        var textarea = document.getElementById("textarea");  
        textarea.value += "\n" + ">" + " " + input.value;  
        input.value = "";  
        return false;       
    }  
    var elem = document.getElementById('textarea');  
    elem.scrollTop = elem.scrollHeight;    
} 

然后我在<input onKeyDown="return keyDown(event, this);" ...>

中调用函数keyDown

知道为什么没有工作?

2 个答案:

答案 0 :(得分:4)

尝试以下方法:

textarea.scrollTop = textarea.scrollHeight - textarea.clientHeight;

答案 1 :(得分:0)

这取决于您正在查看的输入类型,但是将光标强制回到底部可能是一个严重的可用性问题。如果您需要自动扩展的textarea,请查看现有的解决方案,例如jQuery plugin

我不确定这是否是你想要的,但看看这个:http://jsfiddle.net/yV76p/

var textarea = document.getElementById("textarea");

textarea.onkeyup = function(evt) {
    this.scrollTop = this.scrollHeight;
}