Как убрать фокус из поля ввода в jQuery?

136

Я устанавливаю фокус на определенном поле ввода при загрузке страницы, используя следующую строку:

$('#myInputID').focus();

Есть ли способ, которым я могу отменить или удалить этот фокус при наведении на определенный элемент ? (Фокус не нужно сбрасывать после выхода из этого элемента.)

Я не мог найти функцию, которая противоположна вышеупомянутой в jQuery или иначе работала бы здесь.

user2571510
источник

Ответы:

227

Используйте .blur () .

Событие размытия отправляется элементу, когда он теряет фокус. Первоначально это событие было применимо только к элементам формы, таким как <input>. В последних браузерах домен события был расширен, чтобы включить все типы элементов. Элемент может потерять фокус с помощью клавиатурных команд, таких как клавиша Tab, или щелчком мыши в другом месте на странице.

$("#myInputID").blur(); 
Милинд Анантвар
источник
Итак, я думаю, что я делаю что-то не так или я описал это неправильно. Элемент, который я хочу использовать здесь, имеет класс navbar (это панель навигации Bootstrap 3), поэтому я попробовал следующее, но это не работает: $ ('. Navbar'). On ('mouseover', function () {$ ( '#myInputID'). blur ();});
user2571510
Да, я сделал это. Если это не работает, могу я просто установить фокус на навигационную панель?
user2571510
1
@ user2571510: попробуйте подать предупреждение внутри события и посмотреть, будет ли оно запущено или нет.
Милинд Анантвар
Да, предупреждение показывает, но оно не удаляет фокус с поля.
user2571510
1
@ user2571510: у вас есть дубликаты на странице? попробуйте использовать$("[id=myInputID]").blur();
Milind Anantwar
0

Для всего текстового поля:

$(':text').blur()
Муйтаба Ибрагим
источник
0

$(':text').attr("disabled", "disabled");переводит все текстовые поля в отключенный режим. Вы можете сделать по-другому, например, присвоить каждому текстовому идентификатору идентификатор. Благодаря этому вес кода будет больше, и проблема с производительностью будет существовать.

Так что лучше $(':text').attr("disabled", "disabled");подходи.

Винаяк
источник
0

Если у вас есть readonlyатрибут, размытие само по себе не будет работать. Противозачаточные средства ниже должны сделать работу.

$ ( '# MyInputID') removeAttr ( 'только для чтения') триггер ( 'размытость') атр ( 'только для чтения', 'только для чтения')...;
Jeffz
источник