0

独自の構成ページを持つモジュールをまとめようとしています。そのために、メニュー ページのコールバックとして次のコードを使用しています。

function webform_customizations_customize() {
    $form = array();
  // Text field for the e-mail subject.
  $form['webform_customizations']['user_warn_e-mail_subject'] = array(

        '#type' => 'textfield',
        '#title' => t('Warning e-mail subject'),
        '#description' => t('The subject of the e-mail which will be sent 
    to users.'),
          '#size' => 40,
          '#maxlength' => 120,
          '#required' => TRUE,
    );
    $options = array('A', 'B', 'C');
    $form['test'] = array(
        '#type' => 'radios',
        '#options' => array(
                'one' => t('one'),
                'two' => t('two'),
            ),
        '#title' => t('roles that should see a minimal webforms setting area'),
        '#title_display' => t('testing'),
    );
  $form['high_school']['tests_taken'] = array(

    '#type' => 'checkboxes', 

    '#options' => drupal_map_assoc(array(t('SAT'), t('ACT'))), 
    '#title' => t('What standardized tests did you take?'),
    '#states' => array(
      'visible' => array(// action to take.
        ':input[name="student_type"]' => array('value' => 'high_school'),
      ),
    ),
  );
return $form;
}

私の問題は、チェックボックスを表示しようとして失敗することです。最初のフィールドはテキストフィールドを正常に表示します。しかし、次の 2 つは私の構成ページには決して表示されないチェックボックスです。tests_taken チェックボックスのコードは、この drupal doc ページから修正なしで直接持ち上げられます。

単一のチェックボックスを試してみましたが、うまくいきました。

4

1 に答える 1

0

取得したコードに付随するコメントを読んでおく必要があります。

    // This #states rule says that this checkboxes array will be visible only
    // when $form['student_type'] is set to t('High School').
    // It uses the jQuery selector :input[name=student_type] to choose the
    // element which triggers the behavior, and then defines the "High School"
    // value as the one that triggers visibility. 

#states 要素を削除するだけで機能します。幸せなドルペリング!

于 2012-03-24T23:49:05.037 に答える