bootstrap: Documentation is missing how to reset the form validation
- I’ve read https://getbootstrap.com/docs/4.0/components/forms/#how-it-works
- I’ve used Google & Stackoverflow
I haven’t found a solution… What annoys me the most is that the documentation does not show how to reset or disable validation. I shouldn’t have to search the web for this common use case.
I want to clear the form after submission but the validation immediately jumps in and validates the now empty form fields again, resulting in showing errors.
function formValidation() {
// Validation -> https://getbootstrap.com/docs/4.0/components/forms/#validation
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function (form) {
form.addEventListener('submit', function (event) {
if (form.checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
$(form).addClass('is-invalid');
} else {
$(form).addClass('is-valid');
}
form.classList.add('was-validated');
}, false);
});
}
function contactForm() {
// Honeypot
let honeypot = $('#contact-website');
let contactForm = $('#contact-form');
honeypot.parent('.form-group').hide();
honeypot.removeAttr('required');
contactForm.on('submit', (event) => {
event.preventDefault();
if (!contactForm.hasClass('is-valid')) {
return;
}
$.ajax({
type: 'POST',
url: 'contact.php',
data: contactForm.serialize(),
success: () => {
$('#contact-form input').val('');
$('#contact-form textarea').val('');
$('#modal').modal('show');
}
});
});
}
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 1
- Comments: 16 (8 by maintainers)
Commits related to this issue
- [Docs] Clarify suggested use of custom validation styles, add note about resetting form appearance after validation (#25628) * Expand/clarify recommendation for using custom validation styles Seem... — committed to twbs/bootstrap by patrickhlauke 6 years ago
- Sync with twbs (#1) * Use Jekyll's markdownify filter instead of a custom plugin (#25319) * Allow to change `.table-striped` `odd` or `even` (#25333) * Remove -Pre from Nuget install * dist ... — committed to eazyrepo/bootstrap by eazyrepo 6 years ago
if you form wasn’t doing custom AJAX stuff and not actually submitting itself, the code provided in the documentation would work just fine. once you go off-piste with non-standard behaviour, then yes things will get bumpy. but we can’t include (nor foresee) all those situations in the documentation.
anyway, even though this is not a general case, but rather something that is down to your own implementation…here’s a rough solution https://codepen.io/patrickhlauke/pen/wyreOg
I’m using below code to reset the form after successful validation and not get the red border.