Aerodynamika
Aerodynamika

Reputation: 8413

Intercept automatic form submit event in JavaScript / jQuery

I'm trying to catch a submit request for a form

<form action='/post' name='submitform' id="submitform" method='post' class='pure-form'>
<textarea columns="40" rows="4" name='entry[body]' id="statement"></textarea>
<input type='submit' id="submitbutton" name="btnSubmit" value="save" class="pure-button pure-button-primary">
</form>

using

 document.querySelector('#submitform').addEventListener('submit', function(e) { /* code */ });

which works fine if I click a submit button

but when I call

$('#submitform').submit();

or

document.forms["submitform"].submit();

the form submits bypassing my event listener.

Why?

Upvotes: 1

Views: 1402

Answers (2)

Umamaheswaran
Umamaheswaran

Reputation: 3878

You can intercept the jquery submit call by providing an event handler along with the submit function.

$( "#submitform" ).submit(function( event ) {
  alert( "Handler for .submit() called." );
  event.preventDefault();
});

For more info https://api.jquery.com/submit/

Upvotes: 0

yibuyisheng
yibuyisheng

Reputation: 149

You can try this:

$('#submitbutton').trigger('click');

Upvotes: 1

Related Questions