Oui, vous pouvez utiliser le setCustomValidity
de l'API de validation des contraintes, qui fait partie de chaque champ de formulaire (par exemple, HTMLInputElement).
<input name="username">
<script>
const field = document.querySelector('[name="username"]');
field.addEventListener('change', () => {
fetch('https://example.com/myapiforcheckingusername' {
method:'POST',
body: JSON.stringify({username: field.value})
}).then((response) => {
const alreadyExists = // process response to check if username already exists
if (alreadyExists) {
field.setCustomValidity('The username already exists!');
}
});
});
</script>
Le code ci-dessus montre comment effectuer une validation asynchrone sur un champ de saisie. Si le champ setCustomValidity
n'est pas la chaîne vide, cela signifie qu'il s'agit d'une erreur de formulaire. Si l'erreur est une erreur de forme, elle doit être corrigée. checkValidity
est appelé sur le formulaire d'accompagnement, il renvoie false
ensuite.
Vous pouvez vérifier le Documentation MDN pour d'autres exemples en la matière.