vee-validate 版本2.0.4的学习github地址
个人项目地址
第一次认真的在git上写一个demo教程,喜欢的能够star一下~^o^~ (^-^) (^o^)
后续会有一个完整的vue商城项目教程,但愿获得你们的鼓励vue
一步一步学习veeValidate,虽然是个小的demo,可是但愿可以跟你们分享
经过建立多个分支,表示项目的进度,每一个分支的复杂程度递增。git
网上不少教程,再也不赘述github
lesson1分支连接npm
Lesson2分支
安装less
npm install vee-validate --save
main.js中引入学习
home.vue使用ui
效果图this
在想验证的input框添加v-validate指令。多个验证规则用|分隔。对于下面的示例,验证规则是直截了当的。这里使用了一个必填的验证。这里使用button的disabled属性来控制是否能够下一步在计算属性中返回this.$validator.errors.has('name')若是error存在则disabled为truespa
为了更好的使用vee-validate在src下新建文件夹而且建立文件validator.js
在main.js中引用validator.js,以前引用的代码将移入validator.jscode
接下来安装vue国际化
npm install vue-i18n --save
引用
import Vue from "vue"; import VeeValidate from "vee-validate"; import VueI18n from "vue-i18n"; import zh_CN from "vee-validate/dist/locale/zh_CN"; Vue.use(VueI18n); const i18n = new VueI18n({ locale: "zh_CN" }); Vue.use(VeeValidate, { i18n, i18nRootKey: "validation", dictionary: { zh_CN } });
而后效果图就是这样的了,这里的name是必须的对于一个中国人来讲就有点不舒服了。
下一步就是将修改默认显示的错误信息
引入Validator
import { Validator } from "vee-validate";
或者合并使用import VeeValidate, { Validator } from "vee-validate";
// 自定义validate const Dictionary = { zh_CN: { messages: { required: field => "请输入" + field }, attributes: { name: "帐号" } } }; // 自定义validate error 信息 Validator.localize(Dictionary);
效果
添加以前漏掉的一点,一开始进入的时候按钮是不可点的全部添加
一进入就验证
接下来新增点击下一步点击页面
Step1.vue
<template> <div class="form-box"> <p>自定义验证规则学习</span> <form class="sui-validate" method="" name="" @submit.prevent="submit"> <div class="controls"> <input name="mobile" type="text" v-model="name" placeholder="请输入电话" v-validate="'required|mobile'"> <span v-show="errors.has('mobile')" class="help">{{ errors.first('mobile') }}</span> </div> <button class="button" type="submit" :disabled="disabledFlag">下一步</button> </form> </div> </template> <script> export default { name: 'Step1', data() { return { name: '' } }, computed: { disabledFlag() { //验证不经过button disabled return this.$validator.errors.has('mobile') } }, methods: { submit() { } } } </script>
router.js
Home.vue验证成功后点击下一步跳到Step1.vue
methods: { submit() { this.$router.push({name:'step1'}) } }
validator.js添加自定义方法
/*自定义方法*/ Validator.extend("mobile", { getMessage: field => "手机格式不正确", validate: value => value.length === 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value) });
新增手机属性
新增的自定义方法就能够用了这里值得注意的是,自定义方法要放在自定义错误消息上面,要不错误信息会有问题