Установить курсор на длину 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 символов.

Другие вопросы по тегам