Функции проверки форм Drupal - PullRequest
       14

Функции проверки форм Drupal

1 голос
/ 23 октября 2010

Есть ли в любом случае, скажем, Drupal для проверки элементов формы, таких как поля электронной почты, пароли, числовые поля, автоматически проверять, скажем, привязать системный валидатор

$form['email] = array( '#title' => t('Email'), '#type' => 'textfield', <strong>'#validate_as' => array('email', ...),</strong> ... );

Ответы [ 4 ]

6 голосов
/ 12 июня 2012

Для проверки числового поля в Drupal используйте:

'#element_validate' => array('element_validate_number')

Нет необходимости создавать пользовательскую функцию проверки. http://api.drupal.org/api/drupal/includes%21form.inc/function/element_validate_number/7

5 голосов
/ 23 октября 2010

Римиан является правильным и неправильным.

Хорошая вещь, как указывает Римиан, в том, что вы можете прикрепить любую функцию проверки к полям формы, используя #element_validate.

Однако я не знаю о наборе функций проверки API формы, которые вы можете вызвать для проверки наиболее распространенных вещей, например, если значение равно:

  • int
  • положительный int
  • допустимая дата (хотя такая функция существует в модуле даты)
  • адрес электронной почты (вы можете использовать valid_email_address для проверки электронной почты, но вам нужна функция для выдачи ошибки проверки)

Так что, хотя вы можете сделать это, это немного больше работы, чем вы ожидали, так как вам нужно будет создать эти функции проверки самостоятельно. Но как только вы это сделаете, вы можете использовать их с помощью #element_validate.

Использование #element_validate в основном сосредоточено на комплексной проверке даты и времени, проверке местоположения и т. Д., Поскольку для создания этих функций проверки требуется некоторая работа. В большинстве случаев вам не нужно проверять столько чисел и т. Д. (Что вы довольно легко могли бы сделать в обычной функции проверки с использованием цикла). Поэтому я не уверен, насколько это вам поможет, но это определенно возможно.

1 голос
/ 03 сентября 2012

Модуль проверки формы API делает именно то, что вы запрашиваете: http://drupal.org/project/fapi_validation

Для проверки на стороне клиента также существует http://drupal.org/project/clientside_validation (который может использовать правила, предусмотренные формой валидации API).

1 голос
/ 23 октября 2010

Да!

Хотя я не много экспериментировал с этим.

http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6#element_validate

$form = array(  
  '#type' => 'fieldset',  
  '#title' => t('Input format'),  
  '#collapsible' => TRUE,  
  '#collapsed' => TRUE,  
  '#weight' => $weight,  
  '#element_validate' => array('filter_form_validate'),  
);  
...