How do I retain the default HTML form validation and yet prohibit form submitting? I have tried using event.preventDefault()
and return false
. Both are successful in stopping the form from submitting but both fail in form validation. I have also tried this solution, but even that does not work.
Is anybody able to help me?
Use the return value of the function to stop the execution of a form in JavaScript. False would return if the form fails to submit.
preventDefault() to prevent the default action on a form submission from executing.
please use onsubmit attribute in the form element and write a javascript function to return false when there is any error.
Both event.preventDefault()
and return false;
work if used on form submit. The HTML 5 validation is still present.
jQuery("form").submit(function(e){ e.preventDefault(); //or //return false; });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form action="" method="post"> <input id="name" type="text" required="required" /> <input id="email" type="email" required="required" /> <input type="submit" id="btnSubmit" /> </form>
I use checkValidity()
and reportValidity()
to solve this problem.
Assume your form has id as FORM_ID
Sample code:
function handleSubmit (e) { e.preventDefault(); var ele = document.getElementById("FORM_ID"); var chk_status = ele.checkValidity(); ele.reportValidity(); if (chk_status) { ... // do your customized submit operations here. } }
reference
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With