Hoe te forceren om de focus van alle velden in een formulier in jQuery te verliezen

Als een invoerveld verandert (onchange) activeer ik een functie om een ​​variabele in te stellen. Het enige probleem is dat het veld eerst de focus moet verliezen voordat de variabele wordt ingesteld en ik kan controleren of het veld of de velden zijn gewijzigd, dit is wat ik wil doen als de gebruiker op een tabblad klikt, zodat ik kan controleren of de gebruiker is vergeten zijn formulier in het vorige tabblad in te dienen. Hoe geforceerd de focus van alle mogelijke velden te verliezen, zodat eerst de onchange-gebeurtenis kan plaatsvinden?


Antwoord 1, autoriteit 100%

U kunt dit gebruiken:

$(':focus').blur()

Als u geen jQuery op uw site heeft, kunt u deze vervangen door:

let el = document.querySelector( ':focus' );
if( el ) el.blur();

Antwoord 2, autoriteit 12%

Hier heb je geen jQuery voor nodig; vanillaJS kan dit ook.

document.activeElement.blur();

Opmerking: normaal gesproken zou ik controleren op null-heid voordat ik een methode aanroep, maar activeElementretourneert alleen null als er geen ‹body›-knooppunt is, dus deze directe oproep is redelijk veilig.


Antwoord 3, autoriteit 4%

U kunt een .blur()-gebeurtenis activeren

$('SomeElement').blur(function () {
   // do whatever
});
$('SomeElement').blur();

Antwoord 4

$(':focus').blur();

Je kunt deze regel code gebruiken en alles verliest focus (jQuery)

Other episodes