Установить курсор на длину 14 над фокусом текстового поля
Привет, ребята, я хочу установить курсор на позицию длины 14 в текстовом поле, которое не будет иметь значение. Я знаю, что изначально курсор будет в 0, я хочу, чтобы он был в 14
3 ответа
IE использует другой подход при установке позиции курсора, чем Firefox,Opera и Chrome. Лучше сделать вспомогательную функцию, которая сделает это за вас. Я использую это для собственных нужд.
function setCursor(node,pos){
node = (typeof node == "string" || node instanceof String) ? document.getElementById(node) : node;
if(!node){
return false;
}else if(node.createTextRange){
var textRange = node.createTextRange();
textRange.collapse(true);
textRange.moveEnd(pos);
textRange.moveStart(pos);
textRange.select();
return true;
}else if(node.setSelectionRange){
node.setSelectionRange(pos,pos);
return true;
}
return false;
}
Последнее, что нужно, это позвонить из вашего обработчика onfocus.
Удачи
Методы moveStart и moveEnd ожидают 2 параметра. Первый параметр - это строка (символ, слово, предложение или textedit). Второй параметр представляет собой целое число и относится к числу перемещаемых единиц. http://msdn.microsoft.com/en-us/library/ie/ms536623%28v=vs.85%29.aspx
$("#textbox").selectionStart=14
может работать для Firefox, Opera, Chrome, но не уверен для IE
PS: для правильной работы в текстовом поле должно быть уже 14 символов.