【问题标题】:Drupal form validation functionsDrupal 表单验证函数
【发布时间】:2010-10-23 08:30:41
【问题描述】:

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

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

【问题讨论】:

    标签: drupal forms validation drupal-fapi


    【解决方案1】:

    在 Drupal 中验证数字字段:

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

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

    【讨论】:

      【解决方案2】:

      Rimian 既正确又错误。

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

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

      • 一个整数
      • 正整数
      • 一个有效的日期(虽然这样的函数存在于日期模块中)
      • 一个电子邮件地址(您可以使用valid_email_address 来检查电子邮件,但您需要一个引发验证错误的函数)

      因此,虽然您可以执行此操作,但工作量比您希望的要多,因为您需要自己创建这些验证函数。但是一旦你这样做了,你可以用#element_validate重复使用它们。

      #element_validate 的使用主要围绕复杂的验证 fx 日期验证、位置验证等,因为它需要一些工作来创建这些验证功能。大多数时候,您不需要验证那么多数字等(您可以很容易地在使用循环的正常验证函数中完成)。所以我不确定这对你有多大帮助,但绝对有可能。

      【讨论】:

        【解决方案3】:

        Form API 验证模块完全符合您的要求:http://drupal.org/project/fapi_validation

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

        【讨论】:

          【解决方案4】:

          是的!

          虽然我没有尝试过太多。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多