在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