如何清除Drupal.settings?

时间:2011-12-28 13:56:17

标签: jquery ajax drupal

问题是我使用带有客户端验证的ajaxed表单,它使用Drupal.settings来获取一些数据。作为验证年龄的示例,我将以下数据设置为drupal设置:

drupal_add_js(array(
'viewpoint_profile' => array(
  'year' => date('Y'),
  'month' => date('m'),
  'day' => date('d')
)), 'setting');

但是每当使用ajax重新加载表单时,它会将上述设置合并到Drupal.settings,如果首次调用Drupal.settings.viewpoint_profile.year == 2011,则在ajax重新加载后它是Drupal.settings.viewpoint_profile.year == array(2011, 2011),所以我不能在js中使用它一个字符串了。

所以基本上在添加它们之前清除viewpoint_profile的设置会很好,但是我没有设法找到它?或者可能有另一种方法来解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果必须使用drupal设置而不是数组的那些值。

drupal_add_js(array(
  'viewpoint_profile' => array(array(
    'year' => date('Y'),
    'month' => date('m'),
    'day' => date('d')
))), 'setting');

您还可以添加将与表单一起传递的密钥。

答案 1 :(得分:0)

您可以尝试以下方法:

// Create clon of 'viewpoint_profile'.
let viewpointProfile = $.extend(true, {}, settings.viewpoint_profile);
delete settings.viewpoint_profile;
// Use viewpointProfile instead of settings.viewpoint_profile.