详解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 相关文章推荐
从新浪弄下来的全屏广告代码 与使用说明
Mar 15 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
Dec 27 Javascript
jquery下将选择的checkbox的id组成字符串的方法
Nov 28 Javascript
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 Javascript
Javascript实现页面滚动时导航智能定位
May 06 Javascript
React Native AsyncStorage本地存储工具类
Oct 24 Javascript
关于Vue的路由权限管理的示例代码
Mar 06 Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 Javascript
JS性能优化实现方法及优点进行
Aug 30 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
php 变量定义方法
2009/06/14 PHP
php面向对象 字段的声明与使用
2012/06/14 PHP
怎样使用php与jquery设置和读取cookies
2013/08/08 PHP
php中require和require_once的区别说明
2014/02/27 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
javascript date格式化示例
2013/09/25 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
python实现划词翻译
2020/04/23 Python
Python模块学习 datetime介绍
2012/08/27 Python
python实现百度关键词排名查询
2014/03/30 Python
Python 多线程的实例详解
2017/09/07 Python
Python测试人员需要掌握的知识
2018/02/08 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
办公室年终个人自我评价
2013/10/28 职场文书
老公给老婆的道歉信
2014/01/10 职场文书
会计职业生涯规划书
2014/01/13 职场文书
个人借款协议书范本
2014/11/17 职场文书
经费申请报告范文
2015/05/18 职场文书
勇敢的心观后感
2015/06/09 职场文书
校园新闻稿范文
2015/07/18 职场文书
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python