本文仅介绍vue-validator的基本用法
使用方法
1.直接引用在线cdn地址 https://cdn.bootcss.com/vue-validator/3.0.0-alpha.2/vue-validator.js
2.npm安装 npm install vue-validator
如果是npm安装完之后在入口文件main.js中引入
import Validator from 'vue-validator';
Vue.use(Validator);
文中使用的表单控件基于elementUI
<template>
<div class="app-container">
<el-tabs v-model="activeName">
<el-tab-pane label="表单" name="rulesPane">
<el-form ref="rulesForm" :rules="formRules" :model="rulesForm" label-width="200px">
<el-form-item label="用户名:" prop="userName">
<el-input v-model="rulesForm.userName" style="width:300px" maxlength="50"/>
</el-form-item>
<el-form-item label="身份证号:" prop="idNumber">
<el-input v-model="rulesForm.idNumber" style="width:300px" maxlength="50"/>
</el-form-item>
<el-form-item label="地址:" prop="address">
<el-input v-model="rulesForm.address" style="width:300px" maxlength="50"/>
</el-form-item>
<el-form-item label="手机号:" prop="phoneNumber">
<el-input v-model="rulesForm.phoneNumber" style="width:300px" maxlength="50"/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">保存</el-button>
<el-button type="primary" @click="reset">重置</el-button>
</el-form-item>
</el-form>
</el-tab-pane>
</el-tabs>
</div>
</template>
在<el-form ref=”rulesForm” :rules=”formRules” :model=”rulesForm”></el-form>中,ref是被引用时的标识,在验证表单的时候传入此表示,rules是验证规则,需要在data中定义
在<el-form-item label=”用户名:” prop=”userName”></el-form-item>中,prop对应rules中的规则,在使用 validate、resetFields 方法的情况下,该属性是必填的
在script中定义验证规则和方法
<script>
const validatorIdNumber = function (rule, value, callback) {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
if(!value) {
return callback(new Error ('请输入身份证号'))
}else if(reg.test(value)){
callback()
}else {
return callback(new Error('身份证号格式不正确'))
}
}
const validatorPhoneNumber = function (rule, value, callback) {
const reg = /^[1][3,4,5,7,8][0-9]{9}$/
if(!value){
return callback(new Error('请输入手机号'))
}else if(reg.test(value)){
callback()
}else {
return callback(new Error('手机号格式不正确'))
}
}
export default{
data() {
return {
rulesForm: {
userName:'',
address:'',
idNumber:'',
phoneNumber: ''
},
formRules: {
userName:[{required: true,message: '请输入用户名',trigger: 'blur'}],
idNumber:[{required: true,trigger: 'blur',validator: validatorIdNumber}],
address:[{required: true, message: '请输入地址',trigger: 'blur'}],
phoneNumber: [{required: true,trigger: 'blur', validator: validatorPhoneNumber}]
}
}
},
methods:{
onSubmit () {
this.$refs['rulesForm'].validate(valid => {
console.log(valid)
if(valid){
alert('成功提交')
}else{
alert('提交失败')
return false
}
})
},
reset (){
this.$refs['rulesForm'].resetFields()
}
}
}
</script>
首先定义验证方法
validatorIdNumber是用来验证身份证号的验证器
validatorPhoneNumber用来验证是否为正确的手机号
‘(rule, value, callback) => {}’ 为固定格式
方法中定义的常量reg是验证器的正则表达式
接着定义验证规则
验证规则中userName就是在表单中传入的prop,required为是否必填,message为失去焦点后的提示内容,trigger为触发验证的事件类型,validator为验证表单的方法
最后提交表单
this.$refs[ ]获取标识符提交表单验证
this.$refs[‘rulesForm’].resetFields()此方法可以重置表单
tips
使用resetFields()重置表单时,需要在data内初始化表单