Drupal CCK字段和JQuery对话框



现在我有一个Drupal站点,在那里我集成了一个自定义前端接口,用于创建特定类型的节点。此自定义"接口"区域嵌入在节点创建页面的顶部。

节点的CCK字段使用Fieldgroup模块分组在一起,Fieldgroup模块将它们封装到中。当用户按下按钮时,我使用以下代码将Fieldgroup拉入JQuery对话框:

var options = {
    dialogClass: 'customDialog',
    autoOpen: false,
    draggable: false,
    modal: true,
    resizable: false,
    height: 'auto',
    width: 'auto',
    title: 'Configure Options',
    show: 'fade',
    hide: 'fade',
    buttons: {
            'Update': function(){               
                $(this).dialog('close');
        }
    }
 };
// open windows
$("#inputButton").click(function() {
    var dlg = $('.group_input').dialog(options);
    dlg.css('min-width', '500px').css('max-height', '300px');
    dlg.dialog('open'); 
});

一切正常,并在对话框中加载;但是,当用户按下"更新"按钮关闭对话框时,CCK字段不会用新值更新。

如果我在对话框中加载一个字段,也会发生同样的情况,所以我知道这不是Fieldgroup模块的问题。我已经搜索了好几天试图解决这个问题,似乎没有其他人遇到这个问题。任何意见都将不胜感激。

编辑:我有一个解决方案,一旦8小时限制通过,我就会发布:(

好吧,所以我终于想通了。对于任何有兴趣将节点的CCK字段加载到JQuery对话框中的人来说,只有当您将对话框的元素追加回表单时,它才会更新表单值。这似乎是因为JQuery对话框在关闭时实际上会破坏加载的内容。

正确的实现如下:

var options = {
    dialogClass: 'customDialog',
    autoOpen: false,
    draggable: false,
    modal: true,
    resizable: false,
    height: 'auto',
    width: 'auto',
    title: 'Configure Options',
    show: 'fade',
    hide: 'fade',
    buttons: {
      'Update': function(){               
         $(this).dialog('close');
      }
    },
    **close: function(event, ui){
       $('#the-form-name').append($(this));
    }**
 };
// open windows
$("#inputButton").click(function() {
    var dlg = $('.group_input').dialog(options);
    dlg.css('min-width', '500px').css('max-height', '300px');
    dlg.dialog('open'); 
});

我希望这能帮助陷入同样问题的人!

最新更新