Quelqu'un sait comment je peux déclencher la validation HTML5 standard dans un formulaire sans utiliser de bouton d'envoi ? (JavaScript ou jQuery).
Je ne veux pas envoyer POST/GET
demande, seulement faire la validation.
Quelqu'un sait comment je peux déclencher la validation HTML5 standard dans un formulaire sans utiliser de bouton d'envoi ? (JavaScript ou jQuery).
Je ne veux pas envoyer POST/GET
demande, seulement faire la validation.
La réponse acceptée à cette question semble être ce que vous recherchez.
Bref résumé : dans le gestionnaire d'événements pour la soumission, appelez event.preventDefault()
.
Vous devez soumettre le formulaire pour que la validation html5 fonctionne. Il existe un moyen de contourner cela pour obtenir ce que vous voulez. Voir le code :
<body>
<h1>Validation Example</h1><br />
<h2>Insert just 1 digit<h2>
<form id="form" onsubmit="return false">
<label>Input<input type="text" pattern="[0-9]" id="input" /></label>
<input type="submit" class="hide" id="inputButton">
</form>
</body>
Voir un exemple ici
Remarque : l'utilisation de form.submit() n'a pas fonctionné pour moi. J'ai donc créé un bouton d'envoi caché, qui se déclenche à la clé. Ne me demandez pas pourquoi. Peut-être que quelqu'un pourrait le préciser.
Ceci est mon implémentation de la solution suggérée par @mhm, où j'ai abandonné l'utilisation de jQuery.
La variable formId contient l'id du formulaire et msg est un objet avec les messages de mon application.
Cette implémentation essaie d'informer l'utilisateur avec les messages d'erreur HTML 5 natifs, si ce n'est pas possible, alerter un message d'erreur de formulaire générique.
S'il n'y a pas d'erreurs, je soumets le formulaire.
let applyForm = document.getElementById(formId);
if (!applyForm.checkValidity()) {
if (applyForm.reportValidity) {
applyForm.reportValidity();
} else {
alert(msg.ieErrorForm);
}
} else {
applyForm.submit();
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.