Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent form submit but retain form validation

Tags:

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?

like image 943
Storm Avatar asked Dec 07 '14 21:12

Storm


People also ask

How do I stop form submit if validation fails?

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.

Which method will prevent the form from been submitted to execute validation?

preventDefault() to prevent the default action on a form submission from executing.

Which code snippet prevent the form from submitting if there is an validation error?

please use onsubmit attribute in the form element and write a javascript function to return false when there is any error.


2 Answers

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>
like image 172
Simon Schärer Avatar answered Sep 27 '22 20:09

Simon Schärer


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

like image 36
Laurence Chen Avatar answered Sep 27 '22 20:09

Laurence Chen