Как установить курсор на определенную позицию в строковом значении текстового поля ВВОДА в Internet Explorer? - PullRequest
4 голосов
/ 26 июля 2011

У меня уже есть эта работа в Firefox, Safari и Chrome.

Я хотел бы иметь возможность программно установить положение текстового курсора в поле ВВОДА в Internet Explorer.

Я посмотрел эту тему на разных веб-сайтах и ​​в общем нашел ту же технику:

var el = document.getElementById("myTextField");
var pos = 6;

if (document.selection) {
    el.focus();
    var selection = document.selection.createRange();
    selection.moveStart("character", -el.value.length);
    selection.moveStart("character", pos);
    selection.moveEnd("character", 0);
    selection.select();
}

Проблема в том, что когда я пытаюсь сделать это, курсор всегда идет к концу значения независимо от того, какую позицию я предоставляю.

Не понял ли я технику, которую использовали люди?Я что-то пропустил где-то?Это немного расстраивает, но, конечно, такова природа веб-разработки с этими разными браузерами.

Заранее благодарен за любую помощь.

1 Ответ

4 голосов
/ 26 июля 2011

Следующий код работает для меня в IE 9

<script type="text/javascript">
    var input = document.getElementById("myInput");
    input.selectionStart = 2;
    input.selectionEnd = 5;
</script>

Вот код, который я использую для IE 6

      input.select();
        var sel = document.selection.createRange();
        sel.collapse();
        sel.moveStart('character', this.SelectionStart);
        sel.collapse();
        sel.moveEnd('character', this.SelectionEnd - this.SelectionStart);
        sel.select();  
...