VeeValidate 注册实例

注册

 

1 安装:
npm install vee-validate --save
2.mian.js 填写 import Vue from 'vue' import VeeValidate, {Validator} from 'vee-validate'; import zh from 'vee-validate/dist/locale/zh_CN'; Validator.addLocale(zh); const config = { locale: 'zh_CN' }; Vue.use(VeeValidate,config);
 1 <form @submit.prevent="validateBeforeSubmit">
 2             <div class="column is-12">
 3                 <label class="label">手机:</label>
 4                 <p class="control has-icon has-icon-right">
 5                     <input name="phone" v-model="phone" v-validate="'required|phone'" data-first-as="Firsts Name" :class="{'input': true, 'is-danger': errors.has('phone') }" type="text" placeholder="手机">
 6                     <i v-show="errors.has('phone')" class="fa fa-warning"></i>
 7                     <span v-show="errors.has('phone')" class="help is-danger">{{ errors.first('phone') }}</span>
 8                 </p>
 9             </div>
10             <div class="column is-12">
11                 <label class="label">邮箱:</label>
12                 <p class="control has-icon has-icon-right">
13                     <input name="email" v-model="email" v-validate="'required|email'" data-first-as="Firsts Name" :class="{'input': true, 'is-danger': errors.has('email') }" type="text" placeholder="邮箱">
14                     <i v-show="errors.has('email')" class="fa fa-warning"></i>
15                     <span v-show="errors.has('email')" class="help is-danger">{{ errors.first('email') }}</span>
16                 </p>
17             </div>
18             <div class="column is-12">
19                 <label class="label">密码:</label>
20                 <p class="control has-icon has-icon-right">
21                     <input name="pwd" v-model="pwd" v-validate="'required|pwd|min:10'" data-first-as="Firsts Name" :class="{'input': true, 'is-danger': errors.has('pwd') }" type="password" placeholder="密码">
22                     <i v-show="errors.has('pwd')" class="fa fa-warning"></i>
23                     <span v-show="errors.has('pwd')" class="help is-danger">{{ errors.first('pwd') }}</span>
24                 </p>
25             </div>
26             <div class="column is-12">
27                 <label class="label">确认密码:</label>
28                 <p class="control has-icon has-icon-right">
29                     <input name="chepwd" v-model="chepwd" v-validate="'required|chepwd|min:10'" data-first-as="Firsts Name" :class="{'input': true, 'is-danger': errors.has('chepwd') }" type="password" placeholder="密码">
30                     <i v-show="errors.has('chepwd')" class="fa fa-warning"></i>
31                     <span v-show="errors.has('chepwd')" class="help is-danger">{{ errors.first('chepwd') }}</span>
32                 </p>
33             </div>
34             <div class="column is-12">
35                 <p class="control">
36                     <button class="button is-primary" type="submit">Submit</button>
37                 </p>
38             </div>
39         </form>
<script>
	import { Validator } from 'vee-validate';
	export default {
		components: {},
		name: 'form-example',
		data: () => ({
			phone: '',
			email: '',
			pwd: '',
			chepwd: ''
		}),
		created() {
			const dictionary = {
				zh_CN: {
					messages: {
						email: () => '邮箱格式错误。',
						required: (field) => "不能为空" + field, //替换 “ 必须  ” 关键字
					},
					attributes: {
						//email: '不能为空'
					}
				}
			};
			this.$validator.updateDictionary(dictionary);
			Validator.extend('phone', {
				messages: {
					zh_CN: field => field + '必须是11位手机号码',
				},
				validate: value => {
					return value.length == 11 && /^((13|14|15|17|18)[0-9]{1}\d{8})$/.test(value)
				}
			});
			Validator.extend('pwd', {
				messages: {
					zh_CN: field => field + '密码不能少于十位数',
				},
				validate: value => {
					return value;
				}
			});
			Validator.extend('chepwd', {
				messages: {
					zh_CN: field => field + '两次密码不一致',
				},
				validate: value => {   
					if(this.chepwd == this.pwd){
						return value
					}else{
						return false;
					}
				}
			});
		},
		methods: {
			validateBeforeSubmit() {
				this.$validator.validateAll().then((result) => {
					if(result) { // eslint-disable-next-line
						alert('From Submitted!');
						return;
					}
					alert('Correct them errors!');
				});
			}
		}
	};
</script>
推荐阅读:
文档:http://vee-validate.logaretm.com/localization.html
官方例子:http://vee-validate.logaretm.com/examples.html
参考出处:http://www.jianshu.com/p/2a456e31c581

  

posted @ 2017-09-25 16:04  前端技术员  阅读(1087)  评论(0编辑  收藏  举报