详解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 相关文章推荐
基于Jquery实现表格动态分页实现代码
Jun 21 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
May 19 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
JavaScript实现的搜索及高亮显示功能示例
Aug 14 Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
May 16 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
Oct 10 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 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
php命名空间学习详解
2014/02/27 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
php表单处理操作
2017/11/16 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
jquery $.ajax入门应用一
2008/11/19 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
聊聊Python中的pypy
2018/01/12 Python
python issubclass 和 isinstance函数
2019/07/25 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
大学生作弊检讨书
2014/02/19 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
学校运动会霸气口号
2014/06/07 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
婚庆答谢词
2015/01/04 职场文书
房屋认购协议书
2015/01/29 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
实践论读书笔记
2015/06/29 职场文书
工伤调解协议书
2016/03/21 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书
一文搞懂php的垃圾回收机制
2021/06/18 PHP