Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

HTMLInputElement : évènement invalid

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨décembre 2018⁩.

L'évènement invalid de l'interface HTMLInputElement est déclenché lorsqu'un élément soumis est contrôlé pour sa validité et ne respecte pas ses contraintes.

Cet évènement est utile pour afficher un récapitulatif des problèmes d'un formulaire lors de son envoi. Lors de l'envoi d'un formulaire, des évènements invalid sont déclenchés pour chaque contrôle du formulaire qui est invalide. La validité des éléments soumis est vérifiée avant l'envoi de leur formulaire parent <form>, ou après l'appel de la méthode checkValidity() de l'élément ou de son formulaire parent.

Cette vérification n'est pas effectuée lors de l'évènement blur.

Syntaxe

Utilisez le nom de l'évènement dans des méthodes comme addEventListener(), ou affectez un gestionnaire d'évènements à la propriété correspondante.

js
addEventListener("invalid", (event) => { })

oninvalid = (event) => { }

Type d'évènement

Un objet Event générique.

Exemples

Si un formulaire est soumis avec une valeur invalide, les éléments soumis sont vérifiés et, si une erreur est détectée, l'évènement invalid est déclenché sur l'élément invalide. Dans cet exemple, lorsqu'un évènement invalid est déclenché à cause d'une valeur invalide dans le champ input, la valeur invalide est ajoutée au journal.

HTML

html
<form action="#">
  <div>
    <label>
      Saisissez un entier entre 1 et 10&nbsp;:
      <input type="number" min="1" max="10" required />
    </label>
  </div>
  <div><input type="submit" value="Envoyer" /></div>
</form>
<hr />
Valeurs invalides&nbsp;:
<ul id="log"></ul>

JavaScript

js
const input = document.querySelector("input");
const log = document.getElementById("log");

input.addEventListener("invalid", (e) => {
  log.appendChild(document.createElement("li")).textContent = JSON.stringify(
    e.target.value,
  );
});

Résultat

Spécifications

Specification
HTML
# event-invalid
HTML
# handler-oninvalid

Compatibilité des navigateurs

Voir aussi