Simple validation 模块使用评测

Simple validation 是国内Drupal社区中昵称为Drupal猎人的多个Drupal模块作品之一,用于前端表单验证,在实际项目中使用后发现,这个模块是灵活的,可以针对多个表单的字段进行分别管理,虽然暂时还缺乏分组机制,表单配置多了会稍显混乱,但确实实现了灵活配置的目的。

Simple validation 模块还提供了扩展性,我们可以根据需要定制验证组件,这里特别指出的是,自定义验证组件必须先封装才能在后台配置,缺少直接写正则规则的自定义组件,希望以后可以加上,这样我们就必须要想好验证条件,再起好名字,参考模块自带组件进行封装。

本文分享一下我在项目中扩展验证组件的心得。

Simple validation 模块虽然自带了许多验证组件,但未必能满足全部的验证需求,比如我需要一个验证电话号码的组件,这个组件验证规则要和老葛写的Field validation模块的电话验证规则一致,而自带这个组件是另一个正则规则,因此我就需要扩展一个自定义组件,以下是自定义代码,仅供参考。

/**
* Implementation of hook_simple_validation_rules_info().
*/
function MODULE_simple_validation_rules_info() {
  $validation_rules['extra']['isCustomTel'] = array(
    'name' => 'isCustomTel',
    'description' => '电话号码验证',
    'default_value' => 'true',
    'methods callback' => 'MODULE_load_validation_rules',
    'message' => '电话号码格式错误',
    'js files' => 'validator.extra.js',
  );

  return $validation_rules;
}

/**
* Validator rules js load callback
*
* @param $js_file
*/
function MODULE_load_validation_rules($js_file){
  drupal_add_js(drupal_get_path('module', 'MODULE') . '/js/'.$js_file);
}

由于是国内项目,而且不是多语言的,因此扩展时直接写了中文,而且这个模块也默认是国人使用,没有对多语言提供支持,如果需要多语言支持,就需要自己封装组件,或者改核心代码了。

另外,要注意验证信息的样式默认可能不符合你的需求,还需要前端帮着调整调整。

最后,实现的样式如下: