Пропустить проверку для поля формы «кнопка» - PullRequest
0 голосов
/ 04 ноября 2011

Я разрабатываю веб-приложение, используя Drupal.Моя форма содержит две кнопки «Отправить» и «Очистить».Если при нажатии кнопки «Очистить» я хочу пропустить все проверки, включая обязательные проверки полей.Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 24 января 2012

Когда мне нужна кнопка сброса формы, это то, что я делаю.

В коде вашей формы (или form_alter) добавьте следующее:

`$form['clear'] = array(
          '#name' => 'reset',
          '#type' => 'submit',
          '#value' => t('Reset'),
          '#id' => 'edit-reset-button',
          '#validate' => array('form_clear'),
      );`

Добавить функцию очистки (использует простой сброс и перенаправление):

`function form_clear($form, &$form_state) {
   $form_state['rebuild'] = TRUE;
   unset($form_state['values']);
   drupal_goto($form['#action']);
 }`
0 голосов
/ 04 ноября 2011

Существует способ выполнить то, что вы пытаетесь сделать, но он работает только с Drupal 7. Когда вы определяете поле формы «Очистить», добавьте следующую строку.

'#limit_validation_errors' => array()

Документация для этого свойства описывает его как:

Предоставляет массив разделов, которые являются частями $form_state['values'], которые должны быть проверены, подразумевая, что разделы, которые не перечислены, не должны проверяться. Это обычно используется в многошаговых формах в случае кнопки «назад», например, где '#limit_validation_errors' => array() будет означать не подтверждать что-либо, так как значения формы на текущей странице все равно должны быть отброшены.

Пример из документации касается кнопки «Назад», но то же самое относится и к кнопке «Очистить» в вашем случае, так как все введенные значения отбрасываются, и это не имеет смысл сообщать об ошибках для значений, которые не используются.

Drupal 6 не использует это свойство поля формы.
Нет способа избежать проверки значений, особенно если есть значения, помеченные как обязательные. Вы не могли пометить эти значения как обязательные, и визуализация полей формы включала красную звездочку (это способ помечать обязательные значения в Drupal), но затем вы должны написать обработчик проверки для другой кнопки, который проверял бы, что требуемые значения поступил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...