Sal
Sal

Reputation: 3269

Stop redirect in JavaScript

I have a function which verifies if some fields have been filled out (if length > 0) before submitting. If it fails to submit, I don't want to redirect the client at all. Right now, I have the following:

function onSubmit()
{
  if (verify()) //This function will throw alert statements automatically
  {
     document.getElementById('my_form').submit();
     return void(0);
  }

  else
  {
     document.getElementById('my_form').action = null;
  }

}

However, it doesn't matter if verify() returns true or not, I still redirect the client and wipe her inputted fields. How do I keep the client on the page if a required field is blank? (I don't want to lose her currently filled out form...)

Also, I can't use the slick JQuery libraries, since it's not supported on some older browsers. (I'm trying to capture the most general audience.)

Upvotes: 0

Views: 3940

Answers (3)

tereško
tereško

Reputation: 58444

This is how I would try to solve this:

document.getElementById('my_form').onsubmit = function( e ){
    var event = e || window.event;


    // function payload goes here.


    event.returnValue = false;
    if ( event.preventDefault ){ event.preventDefault(); }
    return false;
}

Can be used with event delegation too.

Upvotes: 4

Liam
Liam

Reputation: 29694

return false to the form!

<form onsubmit="return onSubmit()">

function onSubmit()
{
  if (verify()) //This function will throw alert statements automatically
  {
     return true;
  }

  else
  {
     return false;
  }

}

Upvotes: 3

dldnh
dldnh

Reputation: 8951

to stop the form from submitting, return false from your onSubmit

Upvotes: 1

Related Questions