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

浙公网安备 33010602011771号