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 相关文章推荐
用cookies实现的可记忆的样式切换效果代码下载
Dec 24 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
Dec 02 Javascript
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
js模仿php中strtotime()与date()函数实现方法
Aug 11 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
JavaScript比较当前时间是否在指定时间段内的方法
Aug 02 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
VUE 使用中踩过的坑
Feb 08 Javascript
vue实现同一个页面可以有多个router-view的方法
Sep 20 Javascript
JS中call()和apply()的功能及用法实例分析
Jun 28 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
JavaScript, select标签元素左右移动功能实现
May 14 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
PHP面向对象分析设计的经验原则
2008/09/20 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
百度地图API使用方法详解
2015/08/25 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
详解如何使用 vue-cli 开发多页应用
2017/12/16 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
Python随机生成数模块random使用实例
2015/04/13 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
美国旅游网站:Tours4Fun
2017/02/17 全球购物
村优秀党员事迹材料
2014/01/15 职场文书
家长给孩子的评语
2014/01/30 职场文书
晨会主持词
2014/03/17 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
MySQL七种JOIN类型小结
2021/10/24 MySQL
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python