В фокусе, как разместить каретку после последнего символа в уже заполненном поле в IE? - PullRequest
0 голосов
/ 21 декабря 2010

В фокусе, как поместить каретку после последнего символа в уже заполненном поле в IE?

Ответы [ 4 ]

2 голосов
/ 21 декабря 2010

textareaname.scrollTop = textareaname.scrollHeight;

Работает для текстовых областей

Не важно, попробуйте это: http://blog.vishalon.net/index.php/javascript-getting-and-setting-caret-position-in-textarea/

1 голос
/ 21 декабря 2010

IE9 делает это легко, с .selectionStart и .selectionEnd .

Похоже, в предыдущих версиях вам нужно было вызвать .createTextRange, а затем управляйте возвращенным объектом с помощью .move, .moveStart, .moveEnd и .movePoint .

0 голосов
/ 21 января 2013

Самый простой способ - сбросить содержимое элемента ввода, например:

var element_content = false;    
element = document.getElemetById('xyz');
//put focus on element and remember current content
element.focus();
element_content = element.value; 
//now, clear content of element
element.value='';
//and return stored content back to the element, browser moves cursor to the end itself ;) 
element.value=element_content;
0 голосов
/ 21 декабря 2010

Следующее будет работать во всех основных браузерах, включая IE 5-9. IE 9 будет поддерживать свойства ввода текста selectionStart и selectionEnd, приведя его в соответствие со всеми другими браузерами.

function moveCaretToEnd(el) {
    if (typeof el.selectionStart == "number" && typeof el.selectionEnd == "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();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...