Drupal表单验证功能

时间:2010-10-23 08:30:41

标签: drupal forms validation drupal-fapi

有没有说Drupal验证表格元素,如电子邮件字段,密码,数字字段自动验证让我们说绑定系统验证器

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

4 个答案:

答案 0 :(得分:6)

要验证Drupal中的数字字段,请使用:

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

无需创建自定义验证功能。 http://api.drupal.org/api/drupal/includes%21form.inc/function/element_validate_number/7

答案 1 :(得分:5)

Rimian既正确又错误。

Rimian指出,好处是您可以使用#element_validate将任何验证功能附加到表单字段。

但是我不知道有一组表单api验证函数,你可以调用它来测试最常见的东西,如果值是:

  • a int
  • a positive int
  • 有效日期(虽然日期模块中存在此类功能)
  • 电子邮件地址(您可以使用valid_email_address查看电子邮件,但需要提供验证错误的功能)

因此,虽然你可以做到这一点,但它比你希望的要多一些,因为你需要自己创建这些验证功能。但是,一旦完成此操作,您就可以使用#element_validate重复使用它们。

#element_validate的使用主要围绕复杂的验证fx日期验证,位置验证等,因为它需要一些工作来创建这些验证功能。大多数情况下,您不需要验证许多数字等(使用循环在普通验证函数中很容易做到)。所以我不确定这对你有多大帮助,但这绝对是可能的。

答案 2 :(得分:1)

是的!

虽然我没有多尝试过它。

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'),  
);  

答案 3 :(得分:1)

Form API验证模块完全按照您的要求执行:http://drupal.org/project/fapi_validation

对于客户端验证,还有http://drupal.org/project/clientside_validation(可以使用Form API验证提供的规则)。