Drupalのフォーム(From API)が各要素の動作制御(JavaScript)が可能です
- FormAPIで簡単に要素間の動作制御(JavaScriptの拡張)ができます。
- 例えば、2選択肢の一方が選択された、その選択肢に応じるよう別の要素を表示させたい場合、Javascriptで実現する必要があります。ここで、Drupalのform配列にJavaScriptの拡張を記述する「states」を利用すれば良いです
FormAPIでフォーム作成記述に「#states」でjavascriptの拡張を自動的に行います
- 上記コードは以下のとなります
/** * Implement hook_form */ function your_custom_form($node, &$form_state) { $form['type'] = array( '#type' => 'radios', '#options' => array( 'agree' => t('賛成'), 'disagree' => t('反対'), ), '#title' => t('投票してください'), ); $form['survey'] = array( '#type' => 'fieldtext', '#title' => t('反対意見'), '#states' => array( 'visible' => array( ':input[name="type"]' => array('value' => 'disagree'), ), ), ); }