Форма мастера Drupal: проверка и предыдущая кнопка
На моем сайте drupal6 у меня есть форма мастера. Я реализовал это с FormAPI, используя хранилище форм и свойство rebuild. Моя проверка формы выполняется с помощью свойства #required и функций из свойства #element_validate. Он работает нормально, но, с одной стороны, когда я нажимаю на предыдущую кнопку, форма проверяется, и я не хочу этого. Есть ли разумный и правильный способ отключить проверки при нажатии определенной кнопки формы?
3 ответа
Единственный способ сделать это чисто (к сожалению) - это избежать использования #required = TRUE и проверить его самостоятельно в обработчике проверки, принимая во внимание знание того, на каком "шаге" находится форма в процессе мастера.
Один из распространенных подходов - это накапливать все ваши текущие данные в $form_state['storage'], где они будут сохраняться между перестроениями.
// hack to clear validation errors during wizard processing
form_set_error(NULL, FALSE, TRUE);
unset($_SESSION['messages']['error']);
Ответ Кевина работает. Вы также можете попробовать http://drupal.org/project/skip_validation где вы добавите дополнительное свойство к своей предыдущей кнопке,'#skip_validation' => TRUE