jQuery thickbox с iframe.Установите фокус на поле ввода
-
06-07-2019 - |
Вопрос
Привет, у меня был jquery толстая коробка модальный popup в моем заявлении.(iframe - iframe)
Все работает отлично, но я хочу установить сосредоточьтесь к a конкретное поле вводаd.
Iframe загружает обычную страницу aspx, поэтому я подумал, что сделаю $ (document).готово (.. фокус);
Я поместил этот скрипт в код IFrame
Однако это не работает.Я полагаю, что после "готовности" thickbox выполняет какой-то другой код, так что он снова теряет фокус.(например..Я МОГУ установить значение поля ввода, чтобы механизм действительно работал..
Кто - нибудь может помочь мне сфокусироваться ?Ниже приведен мой вызывающий код..
<a href="page.aspx?placeValuesBeforeTB_=savedValues&TB_iframe=true&height=550&width=700" title="Add" class="thickbox">Add</a>
Решение
ThickBox отображает контейнер iframe, вызывая метод в событии onload элемента iframe. Поскольку iframe скрыт на родительской странице до тех пор, пока содержимое iframe не загружено, вы не можете установить фокус, просто используя $ (document) .ready (.. focus) ;. Я нашел самый простой способ обойти это - использовать setTimeout для задержки вызова функции, которая устанавливает фокус, до тех пор, пока не отобразится iframe:
jQuery(document).ready(function() {
setTimeout(function(){
$('#YourElementID').focus();
},200);
});
Примечание. Возможно, вам придется скорректировать передаваемое вами значение в миллисекундах в setTimeout.
Другие советы
Из docs.jquery.com:
Запускает событие фокусировки каждого сопоставленного элемента.
Это приводит к выполнению всех функций, которые были привязаны к событию focus.Обратите внимание, что при этом не выполняется метод фокусировки базовых элементов.
Это означает, что ваш код, скорее всего, должен быть:$('#input_field').get(0).focus ()
Разница в том, что в моем примере вы используете собственный элемент focus элемента DOM, тогда как в вашем вы используете jQuery.
Это все равно не работает, но, возможно, это шаг в правильном направлении.
Ваше здоровье,