详解vee-validate的使用个人小结


Posted in Javascript onJune 07, 2017

学习vee-validate,首先可以去阅读官方文档,更为详细可以阅读官网中的规则。英文文档可能会有不理解的地方,推荐大家看这篇博客

下面来简单总结一下我的使用:

一、安装

npm install vee-validate@next --save

后面加@next是为了安装vue2.0的版本

二、引入

我使用的是vue-cli脚手架工具,需要在main.js中

import VeeValidate from 'vee-validate'

Vue.use(VeeValidate);

三、简单的使用

这个时候其实已经可以使用了,先上demo

<div>
    <label for="email">邮箱:</label>
    <input v-validate ="'required|email'" type="text" id="email" name="myEmail">
  </div>
  <span v-show="errors.has('myEmail')">{{ errors.first('myEmail')}}</span>

解释一下:v-validate后面的required和email是官方已经规定好的几种默认错误类型中的两个,这个可以阅读官方文档。
span中用到了errors的几个方法,这里的参数都是定义了验证规则的表单的name。列举几个errors的方法:

1、first(‘field')

field中(也就是刚刚说过的name表单)中的第一个错误

2、collect(‘field')

field中所有的错误

3、has(‘field')

field中是否有错误

4、all()

当前表单中的所有错误

5、any()

当前表单中是否有错误

6、count()

当前表单中的错误数量

7、clear()

清除当前表单中的所有错误

四、使用中文错误提示

没有配置过的错误提示默认使用英文显示的,如果想要用中文显示需要我们手动配置一下

首先还是在main.js中引入

import zh_CN from 'vee-validate/dist/locale/zh_CN'
import { Validator } from 'vee-validate';

紧接着再加一句

Validator.addLocale(zh_CN);

最后需要把第一步的Vue.use(VeeValidate)改为

Vue.use(VeeValidate, {
 locale: 'zh_CN',
});

现在错误提示已经是中文了

五、配置组件

上一点中的配置中文其实已经是对组件的配置了,再说一说其他的配置。

//配置
const config = {
 errorBagName: 'errors', // change if property conflicts.
 fieldsBagName: 'fields',
 delay: 0,
 locale: 'zh_CN',
 strict: true,
 enableAutoClasses: false,
 classNames: {
  touched: 'touched', // the control has been blurred
  untouched: 'untouched', // the control hasn't been blurred
  valid: 'valid', // model is valid
  invalid: 'invalid', // model is invalid
  pristine: 'pristine', // control has not been interacted with
  dirty: 'dirty' // control has been interacted with
 },
 events: 'blur',
 inject: true
};
Vue.use(VeeValidate, config);

delay是指对错误提示的延迟时间;locale就是上一点中对中文的配置,只是这里统一写到了config中;strict=true代表没有设置规则的表单不进行校验,events默认是input|blur,就是在用户输入和表单失去焦点时都进行校验,这里我改成了blur,即只有失去焦点时才开始验证。

五、修改默认的错误提示信息

//修改默认错误提示
const dictionary = {
 zh_CN: {
  messages: {
   email: () => '邮箱格式不正确哦'
  }
 }
};
Validator.updateDictionary(dictionary);

demo中修改了email的错误提示信息,因为使用的中文(前面引入的),所以是zh_CN。最后用updateDictionary方法加入到Validator中。

六、自定义规则

Validator.extend('qq', {
 messages: {
  zh_CN:field => 'qq号码输入不正确'
 },
 validate: value => {
  return /^[1-9][0-9]{4,14}$/.test(value);
 }
});

extend的第一个参数就是自定义的规则的名字,可以像使用默认规则一样使用它,messages中是错误提示信息,validate是验证规则,返回一个布尔值或promise.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
jquery实现奇偶行赋值不同css值
Feb 17 Javascript
JavaScript实现多维数组的方法
Nov 20 Javascript
js解决弹窗问题实现班级跳转DIV示例
Jan 06 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
Sep 06 Javascript
js代码实现点击按钮出现60秒倒计时
Jan 28 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
Apr 06 Javascript
js学习阶段总结(必看篇)
Jun 16 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 Javascript
JavaScript语句错误throw、try及catch实例解析
Aug 18 Javascript
JS闭包原理及其使用场景解析
Dec 03 Javascript
JavaScript实现下拉列表
Jan 20 Javascript
微信小程序多张图片上传功能
Jun 07 #Javascript
Vue.js对象转换实例
Jun 07 #Javascript
深入理解Angular4中的依赖注入
Jun 07 #Javascript
Vue中保存用户登录状态实例代码
Jun 07 #Javascript
jquery dataTable 后台加载数据并分页实例代码
Jun 07 #jQuery
jQuery用户头像裁剪插件cropbox.js使用详解
Jun 07 #jQuery
使用vue和datatables进行表格的服务器端分页实例代码
Jun 07 #Javascript
You might like
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
angularjs基础教程
2014/12/25 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
Javascript中return的使用与闭包详解
2017/01/11 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
Python基于csv模块实现读取与写入csv数据的方法
2018/01/18 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
pyqt5实现登录界面的模板
2020/05/30 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
几道PHP的面试题
2012/05/19 面试题
数学教学随笔感言
2014/02/17 职场文书
公司应聘求职信
2014/06/21 职场文书
党员学习中共十八大思想报告
2014/09/12 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang