jquery中,input获得焦点时光标自动定位到文字后面
作者:洋洋电脑帮 |
发布时间:2025-03-30 19:06:38 |
阅读:42 |
评论:0
在编辑有值得input输入框时,光标总是自动定位到第一位。为了提高编辑效率,想实现当input获得焦点后,利用js将光标自动定位到input中文字的最后面。
实现方法一
html代码
<input id="test" type="text" />
jquery代码
var value=$("#test").val();
$("#test").val("").focus().val(value);
实现方法二
目的:利用contenteditable=”true”模拟输入框时,focus()方法会将光标定位在文本的首位,需要将光标挪到最后一位。
实现代码:
function setFocus(el) {
el = el[0]; // jquery 对象转dom对象
el.focus();
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
//判断光标位置,如不需要可删除
if(sel.anchorOffset!=0){
return;
};
sel.removeAllRanges();
sel.addRange(range);
}
两种方法都能实现将光标定位到文字的最末位,但是对比,第一个jquery代码比较简洁,理解简单,建议使用。