Drupal - значения Drupal.settings не перезагружаются при сбое проверки - PullRequest
1 голос
/ 09 января 2012

Я добавил настройки в свой файл 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

Как я могу перезагрузить эти массивы, или предотвратить проверку не удастся удалить массивы. Пожалуйста, любая помощь приветствуется.

С уважением!

Ответы [ 2 ]

1 голос
/ 04 октября 2012

Я решил, в функции проверки я только что проверил на наличие ошибок, и если ошибка существует, я просто добавляю файлы js снова.

0 голосов
/ 13 августа 2013
    $form['#after_build'][] = 'yourmodulename_after_build';

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

Используйте это "#after_build" в вашем hook_form или hook_form_alter, чтобы ваши изменения вступали в силу каждый раз, когда отображается форма (также после проверки и т. Д.)

...