Vue.js 表单校验插件


Posted in Javascript onAugust 14, 2016

Vuerify 是一个简单轻量的数据校验插件。内置基础的校验规则和错误提示。可自定义规则,规则类型支持正则、函数或者字符串。校验规则可全局注册也可以组件内注册。插件会给 vm 添加 $vuerify 对象,同时 watch 数据并校验合法性,如果有错误会存入 vm.$vuerify.$errors。

安装

npm i vuerify -S

使用

安装插件

import Vue from 'vue'
import Vuerify from 'vuerify'

Vue.use(Vuerify, /* 添加自定义规则 */)

添加自定义规则
test 可以是正则或者函数

{
 required: {
  test: /\S+$/,
  message: '必填项'
 }
}

组件内注册

{
 data () {
  username: '',
  password: ''
 },

 vuerify: {
  username: {
   test: /\w{4,}/, // 自定义规则,可以是函数,正则或者全局注册的规则(填字符串)
   message: '至少 4 位字符'
  },
  password: 'required' // 使用全局注册的规则
 }
}

API

$vuerify 包含如下属性

name description type default Value
$errors 数据校验失败的错误信息, 例如 username 校验失败会返回 { username: '至少 4 位字符' } Object {}
invalid 存在校验失败的字段 Boolean true
valid 不存在校验失败的字段 Boolean false
check 检查指定字段,传入数组,返回 Boolean Function(Array) -
clear 清空错误列表 Function -

v-vuerify

该指令可以在表单组件触发 blur 事件时验证数据并为组件设置类名(默认为 .vuerify-invalid)。可以是 input 等原生组件,也可以是自己封装过的组件。提供两个版本

安装

# Vue 1.x
npm v-vuerify -S

# Vue 2.0
npm v-vuerify-next -S

用法

import Vue from 'vue'
import VuerifyDirective from 'v-vuerify' // Vue1.x
import VuerifyDirective from 'v-vuerify-next' // Vue2.0

Vue.use(VuerifyDirective)
<input v-model="username" v-vuerify="'username'">

<x-input :value.sync="password" v-vuerify="'password'"></x-input>

Params

verifyInvalidClass

默认类名为 vuerify-invalid

<input v-model="username" v-vuerify="'username'" vuerify-invalid-class="error">

Modifiers

parent
如果 vuerify 是在父组件注册的,那么就需要指定 parent,让指令可以从父组件获取对应的 $vuerify,具体看 demo

Events

vuerify-invalid
vuerify-valid

Github: https://github.com/QingWei-Li/vuerify

Javascript 相关文章推荐
ExtJs事件机制基本代码模型和流程解析
Oct 24 Javascript
js点击事件链接的问题解决
Apr 25 Javascript
JavaScript分析、压缩工具JavaScript Analyser
Dec 31 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
JS取数字小数点后两位或n位的简单方法
Oct 24 Javascript
AngularJS指令与控制器之间的交互功能示例
Dec 14 Javascript
vue中七牛插件使用的实例代码
Jul 28 Javascript
vue cli 3.0 搭建项目的图文教程
May 17 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
javascript随机变色实例代码
Oct 15 Javascript
Vue路由切换页面不更新问题解决方案
Jul 10 Javascript
es5 类与es6中class的区别小结
Nov 09 Javascript
Vue.js学习笔记之 helloworld
Aug 14 #Javascript
详解Node.js如何开发命令行工具
Aug 14 #Javascript
javascript中的 object 和 function小结
Aug 14 #Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 #Javascript
关于JavaScript限制字数的输入框的那些事
Aug 14 #Javascript
使用ajaxfileupload.js实现上传文件功能
Aug 13 #Javascript
几种二级联动案例(jQuery\Array\Ajax php)
Aug 13 #Javascript
You might like
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
python开发之for循环操作实例详解
2015/11/12 Python
pandas数据集的端到端处理
2019/02/18 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
事业单位公务员的职业生涯规划
2014/01/15 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
经典团队口号大全
2014/06/21 职场文书
项目合作意向书模板
2014/07/29 职场文书
放假通知
2015/04/14 职场文书
通知格式
2015/04/27 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫