我需要设置输入的光标位置。我可以让它在Chrome中正常工作,但我在IE上遇到了麻烦。我发现IE9 / 10中的代码工作正常,但我找不到任何适用于IE8及更旧版本的代码。
这就是我对Chrome的支持:
var cursorPosition = 5;
var textArea = $('.the-input-I-Need');
textArea[0].selectionStart = cursorPosition;
textArea[0].selectionEnd = cursorPosition;
//now the cursor would be at the 5th spot in the input
任何人都知道为IE做这个的方法吗?我可以使用jQuery,但没有其他插件。
答案 0 :(得分:2)
关于在这个问题上获取和设置IE中插入位置的问题: Get caret position in textarea (IE)
它还引用了实际获取插入位置的答案:How to get the start and end points of selection in text area?
有一些健康的代码专门用于处理IE,但它会完成你想要做的事情。请注意,getter函数返回一个选择范围,就像setter可用于设置选择范围一样。在这种情况下,您只需使用startOffset
等于endOffset
:
setSelection(el, startOffset, endOffset);
function setSelectionRange(input, selectionStart, selectionEnd) {
if (input.setSelectionRange) {
input.focus();
input.setSelectionRange(selectionStart, selectionStart);
}
else if (input.createTextRange) {
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', selectionEnd);
range.moveStart('character', selectionStart);
range.select();
}
}