Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验


Posted in Javascript onApril 22, 2019

Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验

vee-validate 是为 Vue.js 量身打造的表单校验框架,允许您校验输入的内容并显示对应的错误提示信息。它内置了很多常见的校验规则,可以组合使用多种校验规则,大部分场景只需要配置就能实现开箱即用,还支持自定义正则表达式。而且支持 40 多种语言,对本地化、多语言支持非常友好。

国内饿了么团队开源项目 Element UI 就用到了 vee-validate 。

vee-validate 官网:https://baianat.github.io/vee-validate/

1. 安装

安装 vee-validate 到项目中

npm install vee-validate --save

2. 创建 vee-validate 插件

a. 创建插件

在 Nuxt.js 项目 plugins 目录下创建 veevalidate.js 。

b. 引入、配置 vee-validate

import Vue from 'vue'
import zhCN from 'vee-validate/dist/locale/zh_CN' // 引入本地化语言
import VeeValidate, { Validator } from 'vee-validate' // 引入 vee-validate
// 覆盖默认错误信息提示
zhCN.messages.email = () => '请输入正确的邮箱地址'
Vue.use(VeeValidate)
// 本地化
Validator.localize('zh_CN', zhCN)

3. 引入 vee-validate 到项目中

在 nuxt.config.js 中引入刚才配置好的插件 veevalidate.js

/*
** Plugins to load before mounting the App
*/
plugins: [
  '@/plugins/veevalidate'
],

4. 表单页实现自定义错误提示、自定义检验规则

HTML 表单

<form action="">
 <van-cell-group>
  <van-field placeholder="请输入有效邮箱" type="email" v-model="email" name="email"
   v-validate="'required|email'" :error-message="errors.first('email')" />
  <van-field placeholder="请输入密码" v-model="password" type="password" name="password"
   v-validate="{ min: 3, max: 16, regex: regexps.password }" :error-message="errors.first('password')">
  </van-field>
 </van-cell-group>
</form>

JS

a. 自定义错误提示信息

// 自定义错误信息提示
const validateDict = {
 custom: {
  email: {
   required: '请输入电子邮箱', // 覆盖 email 字段的 required 规则默认信息提示
   email: '请输入有效的电子邮箱地址' // 覆盖 email 字段的 email 规则默认信息提示
  },
  password: {
   min: '密码长度在7-26个字符', // 覆盖 password 字段的 min 规则默认信息提示
   max: '密码长度在7-26个字符', // 覆盖 password 字段的 max 规则默认信息提示
   regex: '需包含大写字母、小写字母、数字、特殊字符中任意三项' // 覆盖 email 字段的 regex 规则默认信息提示
  }
 }
}

b. Vue 中覆盖默认配置,使用自定义提示信息

data () {
 regexps: {
  password: new RegExp('') // 密码检验自定义正则表达式
 },
},
created() {
 this.$validator.localize('zh_CN', validateDict)
},

5. 效果截图

Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验

总结

以上所述是小编给大家介绍的Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Javascript 键盘事件的组合使用实现代码
May 04 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
js+css实现增加表单可用性之提示文字
Jun 03 Javascript
js实现数组转换成json
Jun 26 Javascript
JS实现仿苹果底部任务栏菜单效果代码
Aug 28 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
Mar 14 Javascript
详解vue服务端渲染(SSR)初探
Jun 19 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
vue+elementUI 复杂表单的验证、数据提交方案问题
Jun 24 Javascript
vue组件命名和props命名代码详解
Sep 01 Javascript
如何利用JavaScript实现二叉搜索树
Apr 02 Javascript
vue 项目build错误异常的解决方法
Apr 22 #Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 #Javascript
今天,小程序正式支持 SVG
Apr 20 #Javascript
详解Vue中组件的缓存
Apr 20 #Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
Apr 20 #Javascript
优雅地使用loading(推荐)
Apr 20 #Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 #Javascript
You might like
PHP daddslashes 使用方法介绍
2012/10/26 PHP
php解决和避免form表单重复提交的几种方法
2016/08/31 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
json 定义
2008/06/10 Javascript
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
JS原生数据双向绑定实现代码
2017/08/14 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
vue中如何添加百度统计代码
2020/12/19 Vue.js
JavaScript点击按钮生成4位随机验证码
2021/01/28 Javascript
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
Python中格式化字符串的四种实现
2020/05/26 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
俄罗斯香水在线商店:AromaCode
2019/12/04 全球购物
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
护士个人总结范文
2015/02/13 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技