Vue 表单校验 vee-validate
gitHub 地址:https://github.com/baianat/vee-validate
官网API 地址:https://baianat.github.io/vee-validate/api/
配置
先下载到项目 npm install vee-validate --save
封装一个自定义指令,方便后面使用
import {Validator, install as VeeValidate} from 'vee-validate';
import {required, min, max, excluded, included} from 'vee-validate/dist/rules.esm.js';
import {messages, rules} from '@/util';
import '@/assets/style/validation.sass';
export default function install(Vue) {
Validator.extend('required', required);
Validator.extend('min', min);
Validator.extend('max', max);
Validator.extend('excluded', excluded);
Validator.extend('included', included);
Vue.use(VeeValidate, {
locale: 'cn',
dictionary: {
cn: {messages}
},
classes: ['invalid'],
fieldsBagName: 'xfields'
});
for (let key in rules) {
key && Validator.extend(key, rules[key]);
}
}
更多配置参考 https://baianat.github.io/vee-validate/configuration.html
util.js 下面放一些自定义的规则,列如
import {included} from 'vee-validate/dist/rules.esm.js';
export const messages = {
required: field => `${field}为必填项`,
max: (field, len) => `${field}长度不可多于${len}`,
min: (field, len) => `${field}长度最多${len}`
};
export const rules = {
phone: {
getMessage: () => '手机号码格式不正确',
validate: value => /^(?=\d{11}$)^1(?:3\d|4[57]|5[^4\D]|66|7[^249\D]|8\d|9[89])\d{8}$/.test(value)
},
email: {
getMessage: field => `${field}格式不正确`,
validate: email
},
phoneExcluded: {
getMessage: () => '手机号码格式不正确',
validate: (value, args) => {
return included(value, args) || /^(?=\d{11}$)^1(?:3\d|4[57]|5[^4\D]|66|7[^249\D]|8\d|9[89])\d{8}$/.test(value) // eslint-disable-line
}
},
}
在vue中使用方法,例如
<el-input
v-model="form.successTextPrompt"
v-validate="{required: true, max: 20}"
data-vv-as="文字提示"
data-vv-name="successTextPrompt"
placeholder="请输入"
/>
<span class="error-msg" v-show="errors.has('successTextPrompt')">{{ errors.first('successTextPrompt') }}</span>
methods: {
submit() {
this.$validator.validateAll().then(valid => {
if (valid) {
// 校验成功
}
}
}
}
Vue 表单校验 vee-validate的更多相关文章
- vue 表单校验(二)
vue 表单校验(二) vue element-ui表单校验 由于现在使用element-ui进行form表单校验,因而使用其自带的校验规则进行校验,发现有些并不是那么好校验,或者说是校验起来很繁琐, ...
- vue表单校验(三)
vue表单校验(三) 每当看到heyui的这个表单校验,我就一直想将element的校验也做类似的功能,终于有了方式,虽然不是很完美,但是可以使用,能满足要求了 实现方式 基于element-ui实现 ...
- vue 表单校验报错 "Error: please transfer a valid prop path to form item!"
vue 表单校验报错 "Error: please transfer a valid prop path to form item!" 原因:prop的内容和rules中定义的名称 ...
- 2.12 学习总结 之 表单校验插件validate
一.说在前面 昨天 学习了ajax的相关知识 今天 学习表单校验插件validate, 并使用ajax 自定义校验规则 二.validate 插件 1.网络上有许多成熟的插件共使用者参考,插件就是将j ...
- vue 表单校验 一
表单校验 一 最近使用elment-ui表单进行各种校验,心力交瘁,依旧不能很好地解决,先列出自己的归类,后期一个个攻破 表单校验史 表单校验准则 参考资源 1 2 3 4 5 第一种 显示明确的错误 ...
- 案例15-基本的表单校验使用validate
1 导入插件 <!--引入jquery相关文件 --> <script src="js/jquery-1.11.3.min.js" type="text ...
- JQuery 表单校验插件 validate 使用纪录
JS诞生其中一个目的就是将, 服务器端的校验在客户端提前完成, 以避免用户提交数据后, 后台校验报错的糟糕用户体验. 基于JQuery库的有很多优秀的插件, 其中对于浏览器端表单进行验证的基本功能也有 ...
- vue表单校验提交报错TypeError: Cannot read property 'validate' of undefined
TypeError: Cannot read property 'validate' of undefined at VueComponent.submitForm (plat_users.html: ...
- from表单校验插件 validate 实例
$("#nextSubmit").click(function(){ $("#recovePasswordForm").submit(); }); $(&quo ...
随机推荐
- python获取当前文件路径以及父文件路径
#当前文件的路径 pwd = os.getcwd() #当前文件的父路径 father_path=os.path.abspath(os.path.dirname(pwd)+os.path.sep+&q ...
- Redhat中关于httpd仓库安装的简要步骤
创建repo-server: yum install httpd yum install httpd -y < -y 表示在安装过程中与界面交互时自动答复yes >sys ...
- Flask之项目创建,路由以及会话控制
Flask Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎 ...
- simple shell
NOW = $(data + "%Y-%m-%d-%H-%M-%S") DIR = /export/backup function exportData(){ exportCmd ...
- Matlab:高阶常微分三种边界条件的特殊解法(隐式Euler)
函数文件1: function b=F(f,x0,u,h) b(1,1)=x0(1)-h*x0(2)-u(1); b(2,1)=x0(2)+h*x0(1)^2-u(2)-h*f; 函数文件2: fun ...
- 第9天【btrfs文件系统、压缩工具及for语句、程序包管理】
btrfs文件系统管理与应用(01)_recv halt centos7: mkfs.btrfs命令: -L:指定卷标 -m:元数据 -d:指定数据存储的类型,raid1.5.10.single 实验 ...
- 02.redis安装
因为我这里使用的是centos7 mini版本,需要安装gcc,通过下图显示命令安装gcc(因为redis是由C语言开发而来,所以需要安装gcc编译环境). linux安装好后可以区官网下载redis ...
- xenserver挂载新硬盘
注意:新加硬盘请不要加入raid,否则不认盘 一: 1.1:查看磁盘列表 fdisk -l [root@xenserver zz]# fdisk -l Disk /dev/sdb: 7999.4 GB ...
- java基础知识点学习
基础学习总结 1.锁sync/lock都有哪些方法,底层实现 synchronized ['sɪŋkrənaɪzd] 2.线程池的参数.线程池执行的流程,当到达线程池到达最大数,队列也满了,出现的异常 ...
- Java容器解析系列(0) 开篇
最近刚好学习完成数据结构与算法相关内容: Data-Structures-and-Algorithm-Analysis 想结合Java中的容器类加深一下理解,因为之前对Java的容器类理解不是很深刻, ...