其中 el
是对输入框或文本区的引用。
function moveCursorToEnd(el) {
if (typeof el.selectionStart == "number") {
el.selectionStart = el.selectionEnd = el.value.length;
} else if (typeof el.createTextRange != "undefined") {
el.focus();
var range = el.createTextRange();
range.collapse(false);
range.select();
}
}
我希望这能解决如果我使用 <span contenteditable=”true”</span> 而不是 <input type=”text”> 的话,光标问题。 :)
var tmpStr = field.val();
field.val(”);
field.val(tmpStr);
它在具有 contenteditable=”true” 的元素上不起作用。
Chromium 75.0.3770.100
类型为“number” 的输入标签
input.selectionStart 为 null
input.createTextRange 未定义
非常感谢
这个版本对我很有用(rtl 问题)
const handle_phone_click = (el) => {
if (el.target.selectionStart == 0) {
el.target.selectionStart = el.target.selectionEnd = el.target.value.length;
}
}