Lorsqu'un champ de saisie change (onchange), je déclenche une fonction pour définir une variable. Le seul problème est que le champ doit d'abord perdre le focus avant que la variable ne soit définie et je peux vérifier si le ou les champs sont modifiés, c'est ce que je veux faire lorsque l'utilisateur clique sur un onglet afin que je puisse vérifier si le l'utilisateur est oublié de soumettre son formulaire dans l'onglet précédent. Comment forcer la perte de focus de tous les champs possibles, donc d'abord l'événement onchange
peut avoir lieu?
Vous pouvez utiliser ceci:
$(':focus').blur()
Si vous n'avez pas jQuery dans votre site, vous pouvez le remplacer par:
let el = document.querySelector( ':focus' );
if( el ) el.blur();
Vous n'avez pas besoin de jQuery pour cela; vanillaJS peut également le faire.
document.activeElement.blur();
Remarque: Habituellement, je vérifie la nullité avant d'appeler une méthode, mais activeElement
ne renverra que null s'il n'y a pas de ‹body›
node, donc cet appel direct est assez sûr.
Vous pouvez déclencher un événement .blur()
$('SomeElement').blur(function () {
// do whatever
});
$('SomeElement').blur();