单击按钮时,防止jquery ui打开第二个对话框

时间:2016-09-19 08:19:04

标签: javascript jquery jquery-ui dialog

我有一个包含2个图层的传单地图,当我点击“保存”按钮时,它会打开一个对话框,其中包含一个表格,可以将一些信息按钮发送到我的数据库。

当我选择第一个图层并点击“保存”按钮时,它会打开与我的第一个图层对应的对话框。

但是,当我选择了第二层并点击了我的“保存”按钮时,它会打开与我的第二层相对应的对话框,还会打开我之前为第一层打开的表单。

那么,是否可以阻止打开此表单? 因为如果我做一个.dialog('close'),它在表格上不对应,它可以工作,但我们可以看到它打开然后关闭,所以这不是很好!

我已经测试过.dialog(“destroy”);和.remove();但它删除了我在DOM中的对话框,之后无法打开它们。

所以,这里有一些代码:

//Code in the oneachfeature function from my layer1
 
$('#save').on('click',function(e){
var dialog1 = $("#dialog1").dialog({
                            autoOpen: false,
                            modal: true,
                            show: {
                                  effect: "blind",
                                  duration: 500
                                },
                            hide: {
                                  effect: "blind",
                                  duration: 500
                                },
                            close: function(event, ui) {
                                    //$(this).dialog("destroy");
                                    //$(this).dialog("close");
                                    //$(this).remove();
                                },
                            height: 400,
                            width: 500,
                            modal: true,
                            position: {
                                my: "center center",
                                at: "center center",
                                of: "#map"
                                },
                            buttons: {
                            Valider: function() {
                                         
                                        // Ajax to send informations in the form
 
                                        }, // end of valider
                            Annuler: function() {
                                        dialog1.dialog("close");
                                        },
                                    }, // end of buttons                
                                }); // end of dialog
 
                            dialog1.dialog("open"); 

                            $("#dialog2").dialog('close');
 
                        });   // end of save
 
 
 
 
//Code in the oneachfeature function from my layer2
 
$('#save').on('click',function(e){
var dialog2 = $("#dialog2").dialog({
                            autoOpen: false,
                            modal: true,
                            show: {
                                  effect: "blind",
                                  duration: 500
                                },
                            hide: {
                                  effect: "blind",
                                  duration: 500
                                },
                            close: function(event, ui) {
                                    //$(this).dialog("destroy");
                                    //$(this).dialog("close");
                                    //$(this).remove();
                                },
                            height: 400,
                            width: 500,
                            modal: true,
                            position: {
                                my: "center center",
                                at: "center center",
                                of: "#map"
                                },
                            buttons: {
                            Valider: function() {
                                         
                                        // Ajax to send informations in the form
 
                                        }, // end of valider
                            Annuler: function() {
                                        dialog2.dialog("close");
                                        },
                                    }, // end of buttons                
                                }); // end of dialog
 
                            dialog2.dialog("open"); 
                         
                            $("#dialog1").dialog('close');
 
                        });   // end of save

1 个答案:

答案 0 :(得分:0)

每个图层的两个保存按钮似乎具有相同的ID。安装" onclick"可能会发生冲突。听众?所以行为不是你所期望的。 尝试为这些按钮设置唯一的ID