原生js提供setSelectionRange&createTextRange方法来给input,textarea输入框提供设置光标位置功能
具体见如下:
// 获取光标位置方法
function getCursorPosition(ctrl, pos) {
var cursorPos = 0;if (document.selection) {
ctrl.focus();
var sel = document.selection.createRange();
sel.moveStart('character', -ctrl.value.length);
cursorPos = sel.text.length;
}
else if (ctrl.selectionStart || ctrl.selectionStart === '0') {
cursorPos = ctrl.selectionStart;
}
return cursorPos;
}
// 定位光标位置
function setCursorPosition(ctrl, pos) {
if (ctrl.setSelectionRange) {
ctrl.focus();
ctrl.setSelectionRange(pos, pos);
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}