проблема с отправкой формы из окна fancybox - PullRequest
1 голос
/ 25 февраля 2010

У меня есть эта функция

   jQuery("form#add_cv").submit ( function(){ 
    if (Spry.Widget.Form.validate(this) == true){

            jQuery("#show_rules").fancybox({
                'padding'       : 0,
                'autoScale'     : false,
                'autoDimensions': false,
                'transitionIn'  : 'none',
                'transitionOut' : 'none',
                'width'     : 600,
                'height'        : 450,
                'titlePosition'     : 'inside',
                'scrolling' : 'no'
            }).trigger('click'); 

            jQuery('div#sb_buttons button#cancel_submit').click(function() { 
                $.fancybox.close();
                return false;
            });


            jQuery('div#sb_buttons button#submit_form').click(function() { 
                jQuery("form#add_cv").submit("true");
                $.fancybox.close();
                return true;
            });

        return false;
    }
});

При нажатии на кнопку ОК

            jQuery('div#sb_buttons button#submit_form').click(function() { 
                jQuery("form#add_cv").submit("true");
                $.fancybox.close();
                return true;
            });

, из окна fancybox. Форма с фактической страницы отправляется, и окно fancybox закрывается, затем функция отправки повторяется снова, как я могу решить проблему ... извините за такой вопрос ... но я понятия не имею, что делать, и извините за мой английский, надеюсь вы меня поймете :) Спасибо

Ответы [ 2 ]

2 голосов
/ 27 февраля 2010

После нескольких часов поисков я, наконец, решил проблему, и большое спасибо Сианю за помощь.

это результат:

    jQuery("form#add_cv").submit ( function(){ 

    if( typeof( accept ) != 'undefined' ){
        if(accept){ return true }
    }


    if (Spry.Widget.Form.validate(this) == true){

            jQuery("#show_rules").fancybox({
                'padding'       : 0,
                'autoScale'     : false,
                'autoDimensions': false,
                'transitionIn'  : 'none',
                'transitionOut' : 'none',
                'width'     : 600,
                'height'        : 450,
                'titlePosition'     : 'inside',
                'scrolling' : 'no'
            }).trigger('click'); 


            jQuery('div#sb_buttons button#cancel_sb').click(function() { 
                $.fancybox.close();
                return false;
            });

            jQuery('div#sb_buttons button#sb_form').click(function() {
                accept=true;
                $.fancybox.close(); 
                return  true;
            });


         return false;   
    }


});

я добавил эту строку кода

    if( typeof( accept ) != 'undefined' ){
        if(accept){ return true }
    }

после нажатия кнопки ОК я заявил, что согласен с истиной, после отправки формы, спасибо всем, кто пытался мне помочь;)

0 голосов
/ 26 февраля 2010

Мне кажется, что когда вы нажимаете кнопку Отправить, вы предлагаете jQuery отправить форму и закрыть свой fancybox. Если предположить, что ваша кнопка отправки на самом деле type=submit, ее поведение вступает во владение, и она отправляет форму.

Почему бы вам не попробовать удалить строку jQuery("form#add_cv").submit("true"); из функции отправки?

...