Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jquery - Internet Explorer submitting form twice

I have the following code which I use to submit forms with links (instead of buttons). This is so that we can do some CSS hover stuff with them.

$('a.css_submit').click(submit_form);
$('a.inactive_submit').click(submit_form);

function submit_form(event) {
  if ($(this).parents('form:first').length > 0 && !$(this).hasClass('inactive_submit'))   {
        $(this).toggleClass("css_submit inactive_submit");
    $(this).parents('form:first').submit();
    return false;
  } else {
    return true;
  }
}

The issue is that Internet Explorer occasionally submits the form twice. I haven't been able to replicate the problem myself, but I can verify it in my production server logs. This problem persists in IE6 - IE9. All other browsers work fine. I've seen some posts that say to return false from the link, but I'm doing that.

Any help is appreciated.

like image 910
Kevin Whitaker Avatar asked Jan 26 '26 18:01

Kevin Whitaker


1 Answers

When you submit the form yourself you need to also cancel event's default processing.

The jquery way is event.preventDefault():

$(this).parents('form:first').submit();
event.preventDefault();

Returning true / false has no effect in jquery.

like image 137
rustyx Avatar answered Jan 29 '26 08:01

rustyx