У меня есть поле ввода. При определенных условиях я хочу держать пользователя сосредоточенным на поле ввода, когда он нажимает клавишу Tab. По сути, я имитирую функциональность автоматического заполнения окна поиска Google. У меня все работает нормально во всех браузерах, кроме одного, с которым у меня никогда не было проблем ... Firefox!?
Следующий код работает должным образом в IE, Chrome и Safari. Если вы выходите из текстового поля с помощью класса myInput, ваш фокус остается в текстовом поле. Но в Firefox, когда вы нажимаете Tab из текстового поля, вы переходите к следующему текстовому полю. (Это очень упрощенная версия того, что я делаю. Если я смогу заставить это работать, я смогу заставить мой реальный код работать.)
$(document).ready(
function()
{
$(".myInput").blur
(
function()
{
$(this).focus();
$(this).select();
}
);
}
);
PS. Пожалуйста, не предлагайте исправления с помощью setTimeout (). Спасибо.
Я читал статьи, описывающие, как jQuery имеет .focus (), а javascript имеет .focus () и как они не совпадают. Я понимаю это (я думаю), но я все еще не могу понять, что я делаю неправильно.
ДОБАВЛЕНО ...
Я могу заставить его работать таким образом
$(document).ready(
function()
{
$(".myInput").blur
(
function()
{
setTimeout("$('.myInput').focus();",1);
}
);
}
);
Кажется хакерским, но я не могу понять, почему Firefox не устанавливает фокус на размытие. Поэтому, если у кого-то из вас есть ответ, было бы неплохо узнать.