从fancybox窗口提交表单的问题

时间:2010-02-25 12:51:48

标签: jquery submit fancybox

我有这个功能

   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 个答案:

答案 0 :(得分:2)

经过一段时间的搜索,我终于解决了问题,并向西安寻求帮助。

这是结果:

    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 }
    }

点击确定按钮后,我声明接受是真的,表格可以提交后,感谢所有试图帮助我的人;)

答案 1 :(得分:0)

在我看来,当你点击提交时,你告诉jQuery提交表单并关闭你的fancybox。然后假设您的提交按钮实际上是type=submit,它的固有行为将接管并提交表单。

为什么不尝试从提交功能中删除行jQuery("form#add_cv").submit("true");