详解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实现给出的盒子的序列是否可连为一矩型
Aug 30 Javascript
解决jquery的datepicker的本地化以及Today问题
May 23 Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
浅析jQuery中常用的元素查找方法总结
Jul 04 Javascript
标题过长使用javascript按字节截取字符串
Apr 24 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
May 07 Javascript
js判断滚动条是否已到页面最底部或顶部实例
Nov 20 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
Dec 21 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
Oct 21 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
JS字典Dictionary类定义与用法示例
Feb 01 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 获取百度的热词数据的代码
2012/02/18 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
js window.onload 加载多个函数的方法
2009/11/02 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
jQuery中height()方法用法实例
2014/12/24 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
javascript自执行函数
2017/02/10 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
django 发送手机验证码的示例代码
2018/04/25 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Python如何重新加载模块
2020/07/29 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
Flask处理Web表单的实现方法
2021/01/31 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
店长岗位职责
2013/11/21 职场文书
学生自我鉴定模板
2013/12/30 职场文书
《世界多美呀》教学反思
2014/03/02 职场文书
4s店活动策划方案
2014/08/25 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
六年级学生期末评语
2014/12/26 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
教师节主持词开场白
2015/05/29 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
幼儿园科学课教学反思
2016/03/03 职场文书