Jak usunąć fokus z pola wejściowego w jQuery?

136

Podczas ładowania strony ustawiam fokus na określonym polu wejściowym za pomocą następującego wiersza:

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

Czy istnieje sposób, aby cofnąć lub usunąć to skupienie po najechaniu kursorem na określony element ? (Po opuszczeniu tego elementu fokus nie musi być resetowany).

Nie mogłem znaleźć funkcji, która jest przeciwieństwem powyższej w jQuery lub w inny sposób działałaby tutaj.

user2571510
źródło

Odpowiedzi:

227

Użyj .blur () .

Zdarzenie rozmycia jest wysyłane do elementu, gdy traci on ostrość. Pierwotnie to zdarzenie dotyczyło tylko elementów formularzy, takich jak <input>. W najnowszych przeglądarkach domena zdarzenia została rozszerzona o wszystkie typy elementów. Element może stracić fokus za pomocą poleceń klawiaturowych, takich jak klawisz Tab, lub po kliknięciu myszą w innym miejscu na stronie.

$("#myInputID").blur(); 
Milind Anantwar
źródło
Ok, więc wydaje mi się, że robię coś źle lub źle to opisałem. Element, którego chcę tutaj użyć, ma pasek nawigacyjny klasy (jest to pasek nawigacyjny Bootstrap 3), więc próbowałem wykonać następujące czynności, ale to nie działa: $ ('. Navbar'). On ('mouseover', function () {$ ( '#myInputID'). blur ();});
user2571510
Tak, zrobiłem to. Jeśli to nie zadziała, czy mogę po prostu ustawić fokus na pasku nawigacyjnym?
user2571510
1
@ user2571510: spróbuj dać alert w zdarzeniu i sprawdź, czy jest uruchamiany, czy nie.
Milind Anantwar
Tak, alert jest wyświetlany, ale nie usuwa fokusu z pola.
user2571510
1
@ user2571510: czy masz zduplikowane identyfikatory na stronie? spróbuj użyć$("[id=myInputID]").blur();
Milind Anantwar,
0

Dla wszystkich pól tekstowych:

$(':text').blur()
Mujthaba Ibrahim
źródło
0

$(':text').attr("disabled", "disabled");ustawia wszystkie pola tekstowe w tryb wyłączony. Możesz to zrobić w inny sposób, na przykład nadając każdemu identyfikatorowi pola tekstowego. Wykonując ten kod, waga będzie większa i wystąpi problem z wydajnością.

Więc lepiej $(':text').attr("disabled", "disabled");podejdź.

Vinayak
źródło
0

Jeśli masz readonlyatrybut, samo rozmycie nie zadziała. Poniższe urządzenie powinno wystarczyć.

$ ('# myInputID'). removeAttr ('readonly'). trigger ('blur'). attr ('readonly', 'readonly');
Jeffz
źródło