2

我需要显示一个记录表,每行都有一个锚标记,单击该标记将打开一个 Jquery 对话框。当我单击每一行的链接时,对话框会成功打开(目前,我有两行并且已经硬编码了我需要使它们动态化的锚和 div 标签的 ID)。无论如何,一旦对话框打开,我可以选择取消选中并选中某些复选框并进行一些更新。更新应该反映在父窗口上,这很好。但是,当我再次打开对话框时,它会在进行更新之前打开初始数据,而不是显示使用所做更新刷新的对话框。此外,它开始抛出错误消息,说“在初始化之前无法调用对话框上的方法;试图调用方法‘关闭’”

  $("#vendoradmin-artnodesearch-popup-0").dialog(opt).dialog("open");});

 $("#vendoradmin-artnodesearch-popup-0").dialog(
               {
                autoOpen : false,
                modal : false,
                resizable : false,
                height : 500,
                width : 750,
                buttons : [{
                text: "Submit", 
                click : function() {
                    var selNodes = "";
                  $('#artNodeAvailListId-0 input:checkbox:checked').each(
                     function() {
                        selNodes += $(this).val() + ",";
                      });


                  $("#frmAssignArticleHierarchy\\:hdnArticleNodeIds").attr("value",
                  selNodes);
                     frmAssignArticleHierarchy["frmAssignArticleHierarchy:btnRefreshArticleFilter"]
                 .click();

                  $(this).dialog("close");
                 }
             }]
         });
       };

对此的任何帮助将不胜感激。

4

2 回答 2

0

问题是当你关闭对话框时,实际上它并没有删除对话框中的数据,所以当它再次显示时,它会显示已经存在的数据,所以你需要添加一个删除#vendoradmin-artnodesearch-popup-0内容的关闭选项,只需检查jquery 对话框的 api,您可以找到执行此操作的代码。

$("#vendoradmin-artnodesearch-popup-0").dialog(
               {
                autoOpen : false,
                modal : false,
                resizable : false,
                height : 500,
                width : 750,
close: function(){//add code to remove the data in vendoradmin-artnodesearch-popup-0}
                buttons : [{
                text: "Submit", 

                click : function() {
                    var selNodes = "";
                  $('#artNodeAvailListId-0 input:checkbox:checked').each(
                     function() {
                        selNodes += $(this).val() + ",";
                      });


                  $("#frmAssignArticleHierarchy\\:hdnArticleNodeIds").attr("value",
                  selNodes);
                     frmAssignArticleHierarchy["frmAssignArticleHierarchy:btnRefreshArticleFilter"]
                 .click();

                  $(this).dialog("close");
                 }
             }]
         });
       };
于 2013-04-07T02:06:04.457 回答
0

$("#vendoradmin-artnodesearch-popup-0") 是您动态创建的元素吗?您是否封装了对话框 ID。你可以使用 .ui-dialog 作为前面的选择器吗?那些id是唯一的吗?

  click: function () {
     var selNodes = "";
     $('.ui-dialog #artNodeAvailListId-0 input:checkbox:checked').each(

     function () {
         selNodes += $(this).val() + ",";
     });


     $("#frmAssignArticleHierarchy\\:hdnArticleNodeIds").attr("value",
     selNodes);


     $(this).dialog("close");

不知何故,我认为你可能有冲突的身份。

于 2013-04-07T06:51:14.423 回答