从现在开始,使用简单优雅的validata.js

Posted 李健宁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从现在开始,使用简单优雅的validata.js相关的知识,希望对你有一定的参考价值。

  表单验证,是后台开发中万年不变的话题,在经历许多实战之后发现

     使用优雅便捷的validate.js实现验证实在是一件非常愉悦的事情

    <form data-validate>
        Enter:
        <input type="password" data-rule="密码:required;number[请输入一个整数];equals(target)"/>
        <input type="password" id="target"/>
     </form>


  在实例用,form元素中加入了data-validate标记,validate.js会为form标记内的验证控件进行自动验证
  验证控件使用data-rule标记,data-rule的语法格式是:

    提示名称: 规则(规则参数) [自定义提示];

  其中 ‘提示名称’与‘自定义提示’都是可选项,某些规则需要传入一个参数,比如equals规则需要传入比较控件的id

  自定义提示中可以使用{name}与{arg}变量,这在自定义规则中很有用

 

  validate.js会在验证控件之后加入一个标签<div class="error_msg"></div>该标签的模版在$.validate.errorTemplate中

 

  添加标签的操作由validateHandler实现,validate.js内置了一个简单的验证后操作处理函数

  用户可以使用window.validateHandler = function(msg, scrollTo)来自己的验证后处理函数(添加提示标签,滚动到错误控件处)

 

  validate.js内置了一些规则,定义在 $.validate.rules下,其结构如下:

     $.validate.rules = {
           required: { rule: /./, message: ‘不能为空‘ },
           equals: {
                action: function (el, rule, val, target) {
                    return val !== $(‘#‘+target).val();
                }, message: ‘两次输入的值不一致‘
           }
    }


  用户可以往$.validate.rules添加自定义规则,规则中包含了 rule,action,message
  rule表示为一个正则规则,action表示一个函数验证规则,两者是不能同时拥有
  message可以是一个“string”也可以是一个函数,如果是“string”类型,那么可以使用{name},{arg}来替换成控件名称与参数

  如果是函数,其格式是 message : function (name,arg){ return ‘‘ }



  使用js获取控件验证状态:

    $(‘[data-rule]‘).isValidate() -> bool


  获取验证消息:

    $(‘form‘).validate(justTest,scrollTo) -> 
        param: justTest bool 只是检查,不修改Dom
        param: scrollTo bool 滚动到错误元素
        return { isValidate : bool,
             messages:[{
                          element:jQueryElement,
                          message:string
                          }]
         }

以上是关于从现在开始,使用简单优雅的validata.js的主要内容,如果未能解决你的问题,请参考以下文章

优雅的代码从选择一款适合自己的IDE开始

谈一谈凑单页的那些优雅设计

高效程序员如何优雅落地需求

jQuery Validate 插件

Django 基础教程

如何在NodeJS项目中优雅的使用ES6