Drupal的时候验证失败

问题描述:

我已经使用这个添加的设置,以我的JavaScript文件Drupal.settings值不重装:Drupal的时候验证失败

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 

我怎样才能重新加载这些阵列,或防止在验证失败删除阵列。 请,任何帮助表示赞赏。

亲切的问候!

+0

为什么不检查,看看(也验证等后)每次应用如果XC被定义首先在你做什么之前? – 2012-01-09 13:25:32

+0

当$ descriptions或$ units为空时,验证是否失败?当你查看你期望它在代码中的位置时,你会得到什么输出? – 2012-01-09 18:25:19

+0

我解决了它,在验证函数中,我只是检查任何错误,如果存在错误,我只需再次添加js文件!不管怎么说,还是要谢谢你。 – Carnal 2012-01-10 09:22:19

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

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

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

使用您hook_form或hook_form_alter这个“#after_build”,那么您的更改将形式示出