详解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 相关文章推荐
javascript检查日期格式的函数[比较全]
Oct 17 Javascript
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
Bootstrap源码解读模态弹出框(11)
Dec 28 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
理理Vue细节(推荐)
Apr 16 Javascript
js针对图片加载失败的处理方法分析
Aug 24 Javascript
解决layer图标icon不加载的问题
Sep 04 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
redux处理异步action解决方案
Mar 22 Javascript
Vue实现返回顶部按钮实例代码
Oct 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
Php+SqlServer实现分页显示
2006/10/09 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
php实现文章评论系统
2019/02/18 PHP
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
python的类方法和静态方法
2014/12/13 Python
Python实现针对中文排序的方法
2017/05/09 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
python write无法写入文件的解决方法
2019/01/23 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
详解python内置模块urllib
2020/09/09 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
俄罗斯电动工具和设备购物网站:Vseinstrumenti.ru
2020/11/12 全球购物
自我鉴定 电子商务专业
2014/01/30 职场文书
教师个人工作总结范文2014
2014/11/10 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
2015元旦标语横幅
2014/12/09 职场文书
推销搭讪开场白
2015/05/28 职场文书
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript