SharePoint Alfresco PHP MySQL
О сайте Контакты
понедельник, 17 сентября 2012 г.

JQuery: метод focus() не работает в Internet Explorer

В JQuery есть метод focus(), который предназначен для программной установки курсора в input или textarea. Ниже приведен простой пример поля ввода с кодом, устанавливающим на нем курсор.

<form>
    <input id="test-input" type="text" value='test' />
</form>
<script>
   document.getElementById(' test-input ').focus();
</script>

Этот код сработает в Chrome, Firefox и прочих современных браузерах, кроме IE. Видимо, для Internet Explorer нужен другой механизм установки курсора.

IE запускает механизм установки курсора еще до того, как поле ввода правильно отрисуется. Поэтому для IE можно использовать такую обертку:

setTimeout(function() { document.getElementById('test-input').focus(); }, 10);

Этим мы откладываем исполнение метода focus() и он начинает работать в IE. Конечно же, это решение очень некрасивое, но уж какое есть.

Sergey Lysenko, понедельник, 17 сентября 2012 г.

Комментарии: