官方文档:http://vuejs.github.io/vue-validator/zh-cn/index.html

github项目地址:https://github.com/vuejs/vue-validator

单独使用vue-validator的方法见官方文档,本文结合vue-router使用。

安装验证器

不添加自定义验证器或者无需全局使用的公用验证器,在main.js中安装验证器,使用 CommonJS 模块规范, 需要显式的使用 Vue.use() 安装验证器组件。

import Validator from ‘vue-validator’
Vue.use(Validator)
与 vue-router 同时使用,必须在调用 router#map, router#start 等实例方法前安装验证。

若要自定义验证器,建一个js文件,在该文件中安装验证器组件。例如:validation.js

import Vue from ‘vue’
 import Validator from ‘vue-validator’
 Vue.use(Validator)
 //自定义验证器
 自定义验证器

官方提供的api如下

复制代码

input[type=“text”]
 input[type=“radio”]
 input[type=“checkbox”]
 input[type=“number”]
 input[type=“password”]
 input[type=“email”]
 input[type=“tel”]
 input[type=“url”]
 select
 textarea


复制代码
但是以上的不一定满足我们的需求,这时就需要用到另一个全局api,用于注册和获取全局验证器。

Vue.validator( id, [definition] )
示例 定义validation.js 内容如下

复制代码

import Vue from ‘vue’
 import Validator from ‘vue-validator’
 Vue.use(Validator)
 //自定义验证器
 //添加一个简单的手机号验证
 //匹配0-9之间的数字,并且长度是11位
 Vue.validator(‘tel’, function (val) {
 return /1{11}KaTeX parse error: Expected 'EOF', got '}' at position 13: /.test(val) }̲); //添加一个密码验证 /…/.test(val)
 });


复制代码
使用验证器

验证器语法

复制代码



不得少于3个字符
不得大于15个字符




复制代码


默认情况下,vue-validator 会根据 validator 和 v-validate 指令自动进行验证。然而有时候我们需要关闭自动验证,在有需要时手动触发验证。如果你不需要自动验证,可以通过 initial 属性或 v-validate 验证规则来关闭自动验证。如下:

复制代码



不得少于3个字符
不得大于15个字符




复制代码


Terminal 指令问题

复制代码

<input @invalid=“passwInvalid” @valid=“passwok” type=“password” v-model=‘passw’ id=‘passw’ v-validate:passw="[‘passw’]" detect-change=“off” initial=‘off’ placeholder=‘请输入密码’>
 <input @invalid=“passwInvalid” @valid=“passwok” type=“password” v-model=‘passw2’ id=‘passw2’ v-validate:passw2="[‘passw’]" detect-change=“off” initial=‘off’ placeholder=‘请输入密码’>复制代码


示例:用户注册验证

用了一个组件来显示提示信息

toast.vue

复制代码

{{toasttext}}


复制代码
注册用户:假如我们需要填写手机号和输入两次密码

复制代码




复制代码
若点击下一步,会提示“请完善表单”,因为验证不通过;若是文本框获得焦点后失去焦点则会提示相应的错误信息;若内容填写正确,则会提示验证通过并发送相应的请求。

效果如图


  1. 0-9 ↩︎