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