我有这个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);" ...>
知道为什么没有工作?
答案 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;
}