2012-03-31 72 views
0

现在我有一个Drupal站点,我正在集成自定义前端界面来创建特定类型的节点。这个自定义的'界面'区域被嵌入在节点创建页面的顶部。Drupal CCK字段和JQuery对话框

节点的CCK字段使用将它们封装到一个字段中的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'); 
}); 

一切正常,A-OK和负载弹出的对话框中;但是,当用户按下'更新'按钮关闭对话框时,CCK字段不会被更新为新值。

如果我将单个字段加载到对话框中,同样的事情发生,所以我知道这不是一个Fieldgroup模块问题。我已经搜索了几天试图解决这个问题,似乎没有人遇到过这个问题。任何输入将不胜感激。

编辑:我有一个解决办法,一旦8小时时间限制通过:(

回答

0

确定将发布它,所以我终于想通了任何有兴趣在加载节点的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'); 
}); 

我希望这可以帮助有人坚持相同的问题!