详解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 相关文章推荐
jQuery1.6 正式版发布并提供下载
May 05 Javascript
node.js中的buffer.length方法使用说明
Dec 14 Javascript
2014 年最热门的21款JavaScript框架推荐
Dec 25 Javascript
JQuery插件jcarousellite的参数中文说明
May 11 Javascript
Node.js巧妙实现Web应用代码热更新
Oct 22 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
May 11 Javascript
js精确的加减乘除实例
Nov 14 Javascript
详解vuex的简单使用
Mar 12 Javascript
vue keep-alive请求数据的方法示例
May 16 Javascript
微信小程序实现左侧滑动导航栏
Apr 08 Javascript
微信小程序swiper实现文字纵向轮播提示效果
Jan 21 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
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
php实现单链表的实例代码
2013/03/22 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
使用PHP开发留言板功能
2019/11/19 PHP
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
vue cli 全面解析
2018/02/28 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
微信小程序实现留言功能
2018/10/31 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
django 实现电子支付功能的示例代码
2018/07/25 Python
python 拼接文件路径的方法
2018/10/23 Python
python 二维数组90度旋转的方法
2019/01/28 Python
python按比例随机切分数据的实现
2019/07/11 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
web字体加载方案优化小结
2019/11/29 HTML / CSS
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
工作交流会欢迎词
2014/01/12 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
刑事撤诉申请书
2015/05/18 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android