在js修改输入的值后,“滚动”到输入的末尾

我有一个用户写入的<input id="inp" type="text"> ,有时使用字典中的建议。 当选择一个建议时,我会这样做:

var input = $('#inp'); 
input.val(input.val()+suggestedText+' '); 
input.focus(); // that is because the suggest can be selected with mouse

一切都很好,但是当添加一个使得生成的input.val()太长以至于无法放入编辑字段的提示之后,光标位于字符串的末尾(这很好),但是只有字符串的开头在编辑区域中可见,所以光标也被隐藏。

只要按下一个键(一个可以改变值的键),“滚动”就会进入字符串隐藏起点的末尾......如何自动触发这种行为,而不必按键?

我在这里找到了一个解决方案 - 但它并不好,因为整个输入体验改变了。


为了使这项工作,你需要设置焦点() 之前,你设置的价值。 您可以通过多种方式解决此问题,例如:

input.focus(); // that is because the suggest can be selected with mouse
var input = $('#inp'); 
input.val(input.val() + suggestedText + ' ');

或者这个:

function changeValue(element, newValue) {
    element.focus();
    element.val(element.val() + newValue + ' ');
}

你有没有尝试过:

var input = $('#inp'); 
input.val(input.val()+suggestedText+' '); 
input.focus(); // that is because the suggest can be selected with mouse

var height=input.contents()[0].outerHeight()
input.animate({
    scrollTop:height
},'normal');


谢谢大家的答案,同时我也找到了......当使用鼠标点击输入失去焦点(clik on sth else),然后重新获得它(感谢input.focus()) - “滚动”到最后,但是当选择一个建议是用键盘完成时,焦点从未丢失,这就是为什么它不是“自动滚动”的原因。 我只是简单地在input.focus()之前添加了input.blur(),现在就像一个魅力一样......看看工作示例

http://46.4.128.78/input/
链接地址: http://www.djcxy.com/p/11739.html

上一篇: "scroll" to the end of the input after js modifies input's value

下一篇: Scanning a HUGE JSON file for deserializable data in Scala