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.

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(); 

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

$(':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ź.


0

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

$ ('# myInputID'). removeAttr ('readonly'). trigger ('blur'). attr ('readonly', 'readonly');
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.