# States не работает на разных шагах модуля Meulti step node form

Главные вкладки

Аватар пользователя lionman lionman 31 октября 2013 в 9:17

Здравствуйте.

Хочу создать пошаговую форму с зависимыми полями на разных шагах. Допустим на первом шаге выбераем категорию. На втором шаге заполняем зависимые от этой категории поля.

Реализовал зависимость при помощи #states и hook_form_alter
Многошаговость через модуль Multistep Node form

Вот только зависимость работает если зависимое и поле от которого зависит видимость, находятся на одном шаге.
Ну а если мы выбрали значение на первом шаге, переходим на второй шаг, зависимость не срабатывает. Как возможно решить проблему. Для зависимости использую код

<?php
function corporateclean_form_tovar_node_form_alter(&$form, &$form_state$form_id) {
   
   
$form['field_vibor_cafe']['#states']  = array(
'visible' => array(
'select[name="field_vibor[und]"]' => array('value' => '0',),
),
);
}
?>

Комментарии

Аватар пользователя lionman lionman 31 октября 2013 в 10:15

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

Аватар пользователя tastysoop tastysoop 4 ноября 2013 в 10:01

Насколько я знаю, #states - это чисто JS механизм, он не подгружает поля, а просто яваскриптом изменяет их св-ва/стили. Естественно, что он не срабатывает, когда на форме нет необходимых полей (в данный момент).
Если у вас зависимость разнесена в разные шаги форм, то самым простым способом явяется написание своего hook_form_alter(), просто внимательно отслеживайте текущий шаг формы и значения полей и прячте/показывайте поля по мере необходимости.

Аватар пользователя lionman lionman 4 ноября 2013 в 10:52

Можно пример, как это реализовать? Я что то не совсем понял.

Просто я тоже использую hook_form_alter() и там прописываю states.