JQuery толстый ящик с iframe. Установить фокус на поле ввода - PullRequest
2 голосов
/ 23 июня 2009

Привет, у меня в приложении было jquery Thickbox модальное popu p. ( iframe )
Все отлично работает, но я хочу установить focus на конкретное поле ввода d.

Iframe загружает обычную страницу aspx, так что я решил сделать $ (document) .ready (.. focus);
Я поместил этот скрипт в код IFrame

Однако это не работает. Я полагаю, что после «готовности» какой-то другой код выполняется с помощью коробки «утолщение», так что он снова теряет фокус. (например .. Я МОГУ установить значение поля ввода, чтобы механизм работал ..

Кто-нибудь может мне помочь установить фокус? Ниже мой код вызова ..

<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>

Ответы [ 2 ]

4 голосов
/ 05 августа 2009

ThickBox отображает контейнер iframe, вызывая метод в событии onload элемента iframe. Поскольку iframe скрыт на родительской странице до тех пор, пока содержимое iframe не загружено, вы не можете установить фокус, просто используя $ (document) .ready (.. focus) ;. Самый простой способ обойти это - использовать setTimeout для задержки вызова функции, которая устанавливает фокус, до тех пор, пока не отобразится iframe:

jQuery(document).ready(function() {        
    setTimeout(function(){
        $('#YourElementID').focus();   
    },200);
});

Примечание. Возможно, вам придется настроить значение миллисекунды, которое вы передаете в setTimeout.

0 голосов
/ 24 июня 2009

От docs.jquery.com:

Запускает событие фокуса каждого соответствующего элемента.

Это вызывает выполнение всех функций, связанных с событием фокуса. Обратите внимание, что при этом не выполняется метод focus базовых элементов.

Это означает, что ваш код должен быть: $ ('# input_field'). get (0) .focus ()

Разница в том, что в моем примере вы используете собственный элемент фокуса элемента DOM, тогда как в вашем - jQuery.

Это все еще не работает , но, возможно, это шаг в правильном направлении.

Приветствия

...