多个Javascript函数,在执行任何之前需要确认对话框

时间:2014-03-27 16:53:30

标签: javascript jquery ajax

我有三个独立的javascript / jquery函数,所有这些函数在用户单击按钮后都会触发。一个函数发布到表单处理程序。另一个函数创建一个新选项卡。并且第三个函数获取新选项卡的id,并且帖子通过ajax调用将新信息发送到选项卡。他们都在一起工作,相互依赖。

我尝试了很多不同的配置,我无法弄清楚如何正确地获得确认对话框(例如,"你想执行此操作吗?)同时使用所有这三个配置。如果用户点击"是,"这个过程应该开火。如果用户点击"否,"这个过程应该死了。非常感谢任何帮助。

修改:我已在下面发布了我的代码。我确定它真的很无趣,这就是为什么我没有发布它的原因。尽力学习。谢谢!

jQuery(".update_form").click(function(e) { // changed
            e.preventDefault();
            jQuery.ajax({
                   type: "POST",
                   url: "/eemcontrolpanel/process.cshtml",
                   data: jQuery(this).parent().serialize() // changed                       
                 });
            return false; // avoid to execute the actual submit of the form.
        });

jQuery(".update_form").click(function () {
                var form = jQuery(this).parents('form:first');
                title = jQuery("input[name='process']", form).val();


                $('#tt').tabs('add',{
                    title:title,
                    content:'Script starting',
                    closable:true
                    });

                    $('div.panel-body:last').attr("id","tab" + panelIds[panelIds.length - 1] + 1);

                    panelIds.push(panelIds[panelIds.length - 1] + 1);
            });



            jQuery(".update_form").click(function (e) {
                e.preventDefault();
                //var j = jQuery.noConflict();
                var form = jQuery(this).parents('form:first');
                var fileName = jQuery("input[name='process']", form).val();


                jQuery(document).ready(function () {
                var XHR;
                var stopMe = 1;
                var isSame = 0;
                var oldhtml;    
                var tabID = "tab" + panelIds[panelIds.length - 1];


                jQuery("#"+ tabID).everyTime(1000, function (i) { 


                      if (stopMe != 2){

                        XHR = jQuery.ajax({
                            url: "/eemcontrolpanel/jobs/" + fileName + ".txt",
                            cache: false,
                            success: function (html){


                                if (html === oldhtml){
                                    isSame++;

                                        if (isSame === 10){
                                            stopMe = 2;

                                            }
                                        }
                                        jQuery("#"+ tabID).html("<pre>" + html + "</pre>").scrollHeight;
                                    oldhtml = html;


                                    }                                
                                });                          
                            } else { 
                                jQuery("#"+ tabID).stopTime();
                            }
                            jQuery("#"+ tabID).css({ color: "white" });
                         });                          
                });
            });

这就是我最终要做的事情。我基本上将所有功能组合成一个大功能。

            var panelIds = new Array();                 
            panelIds.push('0');

        jQuery(".update_form").click(function (e) {

            if (confirm('Are you sure?')) {                

            e.preventDefault();

            jQuery.ajax({
                   type: "POST",
                   url: "/eemcontrolpanel/process.cshtml",
                   data: jQuery(this).parent().serialize() // changed                       
                 });

            var form = jQuery(this).parents('form:first');
            var title = jQuery("input[name='process']", form).val();


            $('#tt').tabs('add',{
                title:title,
                content:'Script starting',
                closable:true
                });

                $('div.panel-body:last').attr("id","tab" + panelIds[panelIds.length - 1] + 1);

                panelIds.push(panelIds[panelIds.length - 1] + 1);


            //var j = jQuery.noConflict();

            var fileName = jQuery("input[name='process']", form).val();


            var XHR;
            var stopMe = 1;
            var isSame = 0;
            var oldhtml;    
            var tabID = "tab" + panelIds[panelIds.length - 1];

            //alert(tabID);    

            jQuery("#"+ tabID).everyTime(1000, function (i) { 
                //alert(stopMe);
                  //add also if stopme=false else quit/end/whatever
                  if (stopMe != 2){
                      //alert(stopMe);
                    XHR = jQuery.ajax({
                        url: "/eemcontrolpanel/jobs/" + fileName + ".txt",
                        cache: false,
                        success: function (html){

                                //alert(html);
                            if (html === oldhtml){
                                isSame++;
                                //alert(isSame);
                                    if (isSame === 10){
                                        stopMe = 2;
                                        //alert(stopMe);
                                        }
                                    }
                                    jQuery("#"+ tabID).html("<pre>" + html + "</pre>").scrollHeight;
                                oldhtml = html;

                                //alert(oldhtml);
                                }                                
                            });                          
                        } else { 
                            jQuery("#"+ tabID).stopTime();
                        }
                        jQuery("#"+ tabID).css({ color: "white" });
                     });                          


            } else {

                return false;
            }
        });

1 个答案:

答案 0 :(得分:0)

你试过这个:

Function onButtonPush(){
    if(confirm('confirm message')){
         function1();
         function2();
         function3();

    }
}