focus到文本框尾部

1、怎样用jquery将含有值得input聚焦到文本末尾
2、

var el = $(".campus input").first().get(0);
var Range = el.createTextRange();
Range.moveEnd('character', el.value.length);
Range.moveStart('character', 0);
Range.collapse();
Range.select();

此代码无效,提示 el.createTextRange is not a function

3、详细说明一下,比如说<input name="text" value="金明校区">,$("input").focus()时光标会在文本框头部,而我想让光标在“金明校区”尾部。上图吧还是:
clipboard.png
我的期望是:

clipboard.png

阅读 6.9k
3 个回答

setSelectionRange是HTMLInputElement的方法,也就是说,只有<input><textarea>两种标签可以用setSelectionRange()方法。

如果是不支持setSelectionRange的contenteditable div如何聚焦到尾部?

使用下面的代码即可。

<div 
    id="richTextEditor"
    contenteditable
>
</div>
const el = document.getElementById('richTextEditor');
const range = document.createRange();
const sel = window.getSelection();
console.log(document.activeElement);
const tailIndex = el.childNodes.length;
const tailNode = el.childNodes[tailIndex - 1];
range.setStart(tailNode, tailNode.length);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);

楼上的答案是正确的,$(this).val($(this).val())就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏