jQuery ajax form submit - multiple post/get requests caused when validation fails

Posted by kenny99 on Stack Overflow See other posts from Stack Overflow or by kenny99
Published on 2010-05-05T13:08:32Z Indexed on 2010/05/05 13:38 UTC
Read the original article Hit count: 388

Hi, I have a problem where if a form submission (set up to submit via AJAX) fails validation, the next time the form is submitted, it doubles the number of post requests - which is definitely not what I want to happen. I'm using the jQuery ValidationEngine plugin to submit forms and bind validation messages to my fields. This is my code below. I think my problem may lie in the fact that I'm retrieving the form action attribute via $('.form_container form').attr('action') - I had to do it this way as using $(this).attr was picking up the very first loaded form's action attr - however, when i was loading new forms into the page it wouldn't pick up the new form's action correctly, until i removed the $(this) selector and referenced it using the class. Can anyone see what I might be doing wrong here? (Note I have 2 similar form handlers which are loaded on domready, that could also be an issue)

        $('input#eligibility').live("click", function(){
            $(".form_container form").validationEngine({
                ajaxSubmit: true,
                ajaxSubmitFile: $('.form_container form').attr('action'),
                success :  function() {
                    var url = $('input.next').attr('rel');
                    ajaxFormStage(url);
                },
                failure : function() {
                    //unique stuff for this form
                }
            });
        });
         //generic form handler - all form submissions not flagged with the #eligibility id
        $('input.next:not(#eligibility)').live("click", function(){
            $(".form_container form").validationEngine({
                ajaxSubmit: true,
                ajaxSubmitFile: $('.form_container form').attr('action'),
                success :  function() {
                    var url = $('input.next').attr('rel');
                    ajaxFormStage(url);
                },
                failure : function() {
                }
            });
        });

© Stack Overflow or respective owner

Related posts about jQuery

Related posts about JavaScript