Jon
Jon

Reputation: 1

JS form can't get it to submit

After validating my form with javascript I can not get it to submit to the server

myForm.addEventListener("submit", validation);
  function validation(e) {
  let data = {};
  e.preventDefault();
  errors.forEach(function(item) {
 item.classList.add("cart__hide");
   });

at the end of the validation I have the following code

    if (!error) {
      myForm.submit();
     }

I also tried

     if (error = false) {
     myForm.submit();
      }

     if ((error == false)) {
     myForm.submit();
        }

when I console log error I am getting all false so the form should submit. I am getting the following console log error

TypeError: myForm.submit is not a function

I did this same validation on an html page and it worked fine. Now I am trying to get it to work on a PHP page and it will not submit. I am not sure why the myForm.submit() is causing the error. Thanks Jon

Upvotes: 0

Views: 60

Answers (2)

nick zoum
nick zoum

Reputation: 7325

What you need to do is to only call Event#preventDefault when there is an error.

myForm.addEventListener("submit", validation);

function validation(e) {
  var error = !form.checkValidity(); // replace this with the actual validation
  if (error) e.preventDefault();
}
<form>
  <input type="text">
  <input type="submit" value="submit">
</form>

Upvotes: 2

Ankur Mishra
Ankur Mishra

Reputation: 1296

Remove e.preventDefault(); from your code and put it in your validation function like this:

if (error) {
  e.preventDefault(); 
}

Upvotes: 2

Related Questions