jQuery's .on() method combined with the submit event jQuery's .on() method combined with the submit event ajax ajax

jQuery's .on() method combined with the submit event


You need to delegate event to the document level

$(document).on('submit','form.remember',function(){   // code});

$('form.remember').on('submit' work same as $('form.remember').submit( but when you use $(document).on('submit','form.remember' then it will also work for the DOM added later.


I had a problem with the same symtoms.In my case, it turned out that my submit function was missing the "return" statement.

For example:

 $("#id_form").on("submit", function(){   //Code: Action (like ajax...)   return false; })


The problem here is that the "on" is applied to all elements that exists AT THE TIME. When you create an element dynamically, you need to run the on again:

$('form').on('submit',doFormStuff);createNewForm();// re-attach to all forms$('form').off('submit').on('submit',doFormStuff);

Since forms usually have names or IDs, you can just attach to the new form as well. If I'm creating a lot of dynamic stuff, I'll include a setup or bind function:

function bindItems(){    $('form').off('submit').on('submit',doFormStuff);     $('button').off('click').on('click',doButtonStuff);}   

So then whenever you create something (buttons usually in my case), I just call bindItems to update everything on the page.

createNewButton();bindItems();

I don't like using 'body' or document elements because with tabs and modals they tend to hang around and do things you don't expect. I always try to be as specific as possible unless its a simple 1 page project.