vee-validate vue 2.0自定义表单验证的实例


Posted in Javascript onAugust 28, 2018

亲测可用

学习vee-validate,首先可以去阅读官方文档,更为详细可以阅读官网中的规则

一、安装

您可以通过npm或通过CDN安装此插件。

1. NPM

npm install vee-validate --save

2. CDN

<script src="path/to/vue.js"></script>
<script src="path/to/vee-validate.js"></script>
<script>
 Vue.use(VeeValidate); // good to go.
</script>

或者你可以使用ES6导入它:

import Vue from 'vue';
import VeeValidate from 'vee-validate';

Vue.use(VeeValidate);

二、使用中文提示

没有配置过的错误提示默认使用英文显示的,如果想要用中文显示需要我们手动配置一下,首先还是在main.js中引入

import VeeValidate, {Validator} from 'vee-validate';
import cn from 'vee-validate/dist/locale/zh_CN';

Validator.localize('cn', cn);

三、修改默认的错误提示信息

// 修改默认错误提示
const dict = {
 cn: {messages: {required: (name) => `${name}不能为空!`}} // name接受alias的值.
}
Validator.localize(dict);

demo中修改了required的错误提示信息,因为使用的中文(前面引入的),所以是cn。最后用localize方法加入到Validator中。

四、使用自定义规则

Validator.extend('mobile', {
 getMessage: field => "请输入正确的手机号码",
 validate: value => value.length === 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value)
});

extend的第一个参数就是自定义的规则的名字,可以像使用默认规则一样使用它,getMessage中是错误提示信息,validate是验证规则,返回一个布尔值或promise.

完整例子

<template>
 <div class="">
 <form @submit.prevent="applyCoupon" class="">
  <label class="">手机号</label>
  <p class="">
  <input v-model="phone" name="phone" :class="" type="text"
    placeholder="请输入手机号"><br>
  <span v-show="errors.has('phone')" class="error">{{ errors.first('phone') }}</span>
  </p>
  <label class="">姓名</label>
  <p class="">
  <input v-model="name" name="name" :class="" type="text"
    placeholder="请输入手机号"><br>
  <span v-show="errors.has('name')" class="error">{{ errors.first('name') }}</span>
  </p>

  <p class="">
  <button type="submit" class="" name="button">确定</button>
  </p>
 </form>
 </div>
</template>
<script>
 import VeeValidate, {Validator} from 'vee-validate';
 import cn from 'vee-validate/dist/locale/zh_CN';

 Validator.localize('cn', cn);

 const dict = {
 cn: {messages: {required: (name) => `${name}不能为空!`}}
 }
 Validator.localize(dict);

 export default {
 name: 'coupon-example',
 validator: null,
 data: () => ({
  phone: '',
  name: '',
  errors: null
 }),
 computed: {},
 methods: {
  applyCoupon() { // 提交执行函数
  this.validator.validate('name', this.name).then((result) => this.discounted = result);
  this.validator.validate('phone', this.phone).then((result) => this.discounted = result);
  }
 },
 created() {
  this.validator = new Validator({});

  Validator.extend('mobile', {
  getMessage: field => "请输入正确的手机号码",
  validate: value => value.length === 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value)
  });
  Validator.extend('name', {
  getMessage: field => "请输入正确姓名",
  validate: value => value == 'tom'
  });

  this.validator.attach({name: 'name', rules: 'required|name', alias: '姓名'});
  this.validator.attach({name: 'phone', rules: 'required|mobile', alias: '手机'});
  // 使用attach以FieldOptions作为其第一个参数的方法添加验证规则。

  this.$set(this, 'errors', this.validator.errors);
 }
 };
</script>
<style>
 .error {
 font-size: 12px;
 color: #ff1c13;
 }
</style>

以上这篇vee-validate vue 2.0自定义表单验证的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS 下拉多选框lovcombo
May 19 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
使用jquery插件qrcode生成二维码
Oct 22 Javascript
jquery实现的动态回到顶部特效代码
Oct 28 Javascript
三种Node.js写文件的方式
Mar 08 Javascript
javascript冒泡排序小结
Apr 10 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
Feb 27 Javascript
js代码规范之Eslint安装与配置详解
Sep 08 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
Vue2 添加数据可视化支持的方法步骤
Jan 02 Javascript
async/await优雅的错误处理方法总结
Jan 30 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
vue+element-ui动态生成多级表头的方法
Aug 28 #Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 #jQuery
对Vue table 动态表格td可编辑的方法详解
Aug 28 #Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 #Javascript
layui实现文件或图片上传记录
Aug 28 #Javascript
利用vue.js把静态json绑定bootstrap的table方法
Aug 28 #Javascript
react native 获取地理位置的方法示例
Aug 28 #Javascript
You might like
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/21 PHP
php获取系统变量方法小结
2015/05/29 PHP
php中的登陆login实例代码
2016/06/20 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
Python判断两个对象相等的原理
2017/12/12 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
python-numpy-指数分布实例详解
2019/12/07 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
Linux操作面试题
2015/02/11 面试题
计算机专业个人简短的自我评价
2013/10/23 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
党员公开承诺事项
2014/03/25 职场文书
党员承诺书范文
2014/05/19 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python