Drupal: API форм, динамически скрывать или показывать поля на основе ввода

Я создаю модуль формы. Одним из ранних полей является набор переключателей. По умолчанию выбрана первая кнопка. Затем у меня будет серия выделенных ящиков. Нужно быть видимым, другие невидимы. Затем, когда пользователь выбирает другой переключатель, я хочу отображать или скрывать разные поля выбора. Как я могу скрыть поле и метку по умолчанию и показать его позже, в зависимости от того, какой переключатель (или другой вариант окна выбора, если на то пошло) выбрано?

Ответ 1

Вы можете использовать свойство #states для достижения этого. Свойство #states может применяться ко всем элементам API формы.

Здесь ссылка с примером.

Надеюсь, это поможет... Мухаммад.

Ответ 2

простой пример использования #states: показать поле выбора с именем "item", только если другое поле с именем "type" имеет значение "sell"

$form['item'] = array( 
        '#title' => t('Task Item'),
        '#type' => 'select',
        '#states' => array(
            // Only show this field when the value of type is sell.
            'visible' => array(
                ':input[name="type"]' => array('value' => 'sell'),
            ),
        ),
    );

Ответ 3

Вы также можете использовать модуль "Условные поля". Вот ссылка: https://drupal.org/project/conditional_fields Он предоставляет вкладку "Управление зависимостями" при создании типа контента, где вы можете выбрать, какие поля должны быть видимыми, когда поле имеет конкретное значение.