創建vue項目:
vue init webpack veecd ./vee npm run dev # oryarn run dev
安裝 VeeValidate
npm install vee-validate --save# oryarn add vee-validate --save
本文中使用的 VeeValidate 版本為 2.1.5
在 App.vue 中引入
import VeeValidate from 'vee-validate';Vue.use(VeeValidate);
例子
第一個測試例子
<template> <div class="test1"> <div> <input type="text" name="nickname" v-model="formData.nickname" v-validate="'required|min:3|max:10'" > <p>{{errors.first('nickname')}}</p> </div> <div> <button @click="handleSubmit">Submit</button> </div> </div></template><script> export default { name: "test1", data() { return { formData: { nickname: '', password: '', } } }, methods: { handleSubmit() { this.$validator.validate() .then((valid) => { if (true === valid) { console.log('驗證通過'); } else { console.log(this.$validator.errors.all()); } }) } } }</script><style scoped lang="css"> .test1 { width: 900px; margin: 0 auto; }</style>
更多配置請參考官網!
我們只是用些常用配置和常用的驗證!
中文配置
全局配置
import VeeValidate, {Validator} from 'vee-validate';import zh_CN from 'vee-validate/dist/locale/zh_CN';Vue.use(VeeValidate, { dictionary: { zh_CN: zh_CN }});Validator.localize('zh_CN');
這樣就可以使用中文提示了!
自定義錯誤提示
<template> <div class="test2"> <div><input type="text" v-model="formData.nickname" data-vv-name="nickname" v-validate="'required|min:3|max:10'"> </div> <div>{{errors.first('nickname')}}</div> <div><input type="text" v-model="formData.password" data-vv-name="password" v-validate="'required|min:5|max:200'"> </div> <div>{{errors.first('password')}}</div> <div> <button @click="handleSubmit">Submit</button> </div> </div></template><script> const validate = { custom: { nickname: { required: () => '昵稱不得為空', //寫法1 min: "昵稱不得小于3個字符", //寫法2 max: () => '昵稱不得大于10個字符' }, password: { required: () => '密碼不得為空', min: "密碼不得小于5個字符", max: () => '密碼不得大于200個字符' } }, }; export default { name: "test2", data() { return { formData: { nickname: '', password: '', } } }, methods: { handleSubmit() { this.$validator.validate() .then((valid) => { if (true === valid) { console.log('驗證通過'); } else { console.log(this.$validator.errors.all()); } }) } }, mounted() { this.$validator.localize('zh_CN', validate); } }</script>
自定義驗證規則
<template> <div class="test2"> <div><input type="text" v-model="formData.nickname" data-vv-name="nickname" v-validate="'required|min:3|max:10'"> </div> <div>{{errors.first('nickname')}}</div> <div><input type="text" v-model="formData.password" data-vv-name="password" v-validate="'required|min:5|max:200'"> </div> <div>{{errors.first('password')}}</div> <div><input type="text" v-model="formData.re_password" data-vv-name="re_password" v-validate="'required|confirm'"> </div> <div>{{errors.first('re_password')}}</div> <div><input type="text" v-model="formData.mobile" data-vv-name="mobile" v-validate="'required|mobile'"> </div> <div>{{errors.first('mobile')}}</div> <div> <button @click="handleSubmit">Submit</button> </div> </div></template><script> const validate = { custom: { nickname: { required: () => '昵稱不得為空', //寫法1 min: "昵稱不得小于3個字符", //寫法2 max: () => '昵稱不得大于10個字符' }, password: { required: () => '密碼不得為空', min: "密碼不得小于5個字符", max: () => '密碼不得大于200個字符' }, re_password: { required: () => '請再次輸入密碼!', }, mobile: { required: () => '請輸入手機號碼!', } }, }; export default { name: "test3", data() { return { formData: { nickname: '', password: '', re_password: '', mobile: '' } } }, methods: { handleSubmit() { this.$validator.validate() .then((valid) => { if (true === valid) { console.log('驗證通過'); } else { console.log(this.$validator.errors.all()); } }) } }, mounted() { this.$validator.localize('zh_CN', validate); this.$validator.extend('mobile', { getMessage: field => '手機號有誤', validate: value => { return /^((13|14|15|17|18)[0-9]{1}/d{8})$/.test(value) } }) this.$validator.extend('confirm', { getMessage: field => '兩次密碼輸入不一致', validate: value => { return value === this.formData.password } }) } }</script>
顯示第一個錯誤!
有時候我們需要在彈出層中提示用戶 所以要顯示第一個錯誤
this.$validator.errors.items[0].msg
例子 發驗證碼和注冊!
這個例子中發驗證碼是一個驗證 注冊又是一個驗證 所以有點意義!
在發送驗證碼的時候需要驗證手機號碼和圖形驗證碼 注冊的時候需要驗證除圖形驗證碼之外的數據
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb