2012-01-09 7 views
1

を失敗したときに、私はこれを使用して、私のjavascriptの設定をファイルに追加したリロードされません。Drupalの - Drupal.settings値は検証が

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が定義されているかどうかをチェックしません最初に何かする前に? –

+0

$ descriptionまたは$ unitsが空の場合、検証に失敗しますか?これがコード内にあると予想している場所のソースを表示すると、どの出力が得られますか? –

+0

私はエラーをチェックしたばかりのバリデーション機能でそれを解決しました。エラーがある場合は、jsファイルをもう一度追加します。とにかくありがとう。 – Carnal

答えて

1

私はそれを解決しました。バリデーション機能ではエラーをチェックしました。エラーがある場合は、jsファイルをもう一度追加します。

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」、変更内容はフォームが(なども確認した後に)示されるたびに適用されますので、

関連する問題