Pristine
Pristine copied to clipboard
Pristine block request
Pristine block the request of my form
<form id="form1" name="form" class="box" action="" method="post">
<h1>Créer un compte</h1>
<div class="form-group">
<input type="text" name="username" id="username" placeholder="Nom d'utilisateur" required data-pristine-required-message="*Ce champ est requis" required>
</div>
<div class="form-group">
<input type="text" name="email" placeholder="Email" data-pristine-type="email" required>
</div>
<div class="form-group">
<input type="text" name="firstname" placeholder="Prenom" required>
</div>
<div class="form-group">
<input type="text" name="lastname" placeholder="Nom" required>
</div>
<div class="form-group">
<input type="password" name="password" placeholder="Mot de passe" required>
</div>
<div class="form-group">
<button type="submit" name="submit" value="Créer l'utilisateur">
</div>
<div class="form-group"></div>
<div class="g-recaptcha" data-sitekey="--------------------------"></div>
</div>
</form>
window.onload = function () {
var form = document.getElementById("form1");
var pristine = new Pristine(form);
form.addEventListener('submit', function (e) {
e.preventDefault();
var valid = pristine.validate();
});
};
You can't simple continue submitting form after e.preventDefault()
. But you can use this workaround:
form.addEventListener('submit', function (e) {
var valid = pristine.validate();
if (!valid){
e.preventDefault();
return false;
}
});
Or mimic initial form submit with adding click listener to submit button. For example, let its id be "formSubmit":
var submit = document.getElementById("formSubmit");
submit.addEventListener('click', function(e) {
e.preventDefault();
var valid = pristine.validate();
if (valid) {
form.submit();
}
});