Drupal - 当验证失败时,Drupal.settings值不会重新加载

时间:2012-01-09 09:22:23

标签: jquery drupal drupal-6

我已将设置添加到我的javascript文件中:

drupal_add_js(array('xc' => array('unit_descriptions' => $descriptions)), 'setting');
drupal_add_js(array('xc' => array('unit_names' => $units)), 'setting');

使用:

加载.js文件时,它可以正常工作
$unitName.text(Drupal.settings.xc.unit_names[utid]);
$unitDesc.text(Drupal.settings.xc.unit_descriptions[utid]);

为了加载值。 但是当验证失败时,例如:如果我没有指定名称或其他什么,这两个数组就会消失,我在控制台中得到语句:

Drupal.settings.xc is undefined

如何重新加载这些数组,或阻止on验证无法删除数组。 请,任何帮助表示赞赏。

亲切的问候!

2 个答案:

答案 0 :(得分:1)

我解决了它,在我刚刚检查过任何错误的验证函数中,如果存在错误,我只是再次添加js文件。

答案 1 :(得分:0)

    $form['#after_build'][] = 'yourmodulename_after_build';

    function yourmodulename_after_build ($form, &$form_state) {
      //...do something...      
      return $form
    }

在hook_form或hook_form_alter中使用此“#after_build”,因此每次显示表单时(包括验证后等)都会应用您的更改