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

HTMLButtonElement : méthode reportValidity()

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⁩.

La méthode reportValidity() de l'interface HTMLButtonElement effectue les mêmes étapes de vérification de validité que la méthode checkValidity(). De plus, si l'événement invalid n'est pas annulé, le navigateur affiche le problème à l'utilisateur·ice.

Syntaxe

js
reportValidity()

Paramètres

Aucun.

Valeur de retour

Retourne true si la valeur de l'élément ne présente aucun problème de validité ; sinon, retourne false.

Exemples

Cet exemple montre comment un bouton peut être rendu invalide.

HTML

On crée un formulaire qui ne contient que quelques boutons :

html
<form action="#" id="form" method="post">
  <p>
    <input type="submit" value="Envoyer" />
    <button id="example" type="submit" value="fixed">CE BOUTON</button>
  </p>
  <p>
    <button type="button" id="report">reportValidity()</button>
  </p>
</form>

<p id="log"></p>

CSS

On ajoute un peu de CSS, y compris les styles :valid et :invalid pour notre bouton :

css
input[type="submit"],
button {
  background-color: #3333aa;
  border: none;
  font-size: 1.3rem;
  padding: 5px 10px;
  color: white;
}
button:invalid {
  background-color: #aa3333;
}
button:valid {
  background-color: #33aa33;
}

JavaScript

On inclut une fonction pour basculer la valeur, le contenu et le message de validation du bouton d'exemple :

js
const reportButton = document.querySelector("#report");
const exampleButton = document.querySelector("#example");
const output = document.querySelector("#log");

reportButton.addEventListener("click", () => {
  const reportVal = exampleButton.reportValidity();
  output.innerHTML = `reportValidity a retourné : ${reportVal} <br/> erreur personnalisée : ${exampleButton.validationMessage}`;
});

exampleButton.addEventListener("invalid", () => {
  console.log("Événement 'invalid' déclenché sur exampleButton");
});

exampleButton.addEventListener("click", (e) => {
  e.preventDefault();
  if (exampleButton.value === "error") {
    breakOrFixButton("fixed");
  } else {
    breakOrFixButton("error");
  }
  output.innerHTML = `message de validation : ${exampleButton.validationMessage} <br/> erreur personnalisée : ${exampleButton.validationMessage}`;
});

function breakOrFixButton() {
  const state = toggleButton();
  if (state === "error") {
    exampleButton.setCustomValidity(
      "Ceci est un message d'erreur personnalisé",
    );
  } else {
    exampleButton.setCustomValidity("");
  }
}

function toggleButton() {
  if (exampleButton.value === "error") {
    exampleButton.value = "fixed";
    exampleButton.innerHTML = "Aucune erreur";
  } else {
    exampleButton.value = "error";
    exampleButton.innerHTML = "Erreur personnalisée";
  }
  return exampleButton.value;
}

Résultat

Le bouton est valide par défaut. Activez « CE BOUTON » pour changer la valeur, le contenu et ajouter un message d'erreur personnalisé. L'activation du bouton « reportValidity() » vérifie la validité du bouton, affiche le message d'erreur personnalisé à l'utilisateur·ice et déclenche un événement invalid si le bouton ne passe pas la validation de contrainte à cause du message.

Spécifications

Specification
HTML
# dom-cva-reportvalidity-dev

Compatibilité des navigateurs

Voir aussi