通过ref
属性获得表单对象,调用表单对象的validate
函数进行表单的整体校验
<template>
<!--model绑定整个form对象的的数据-->
<!--rules绑定校验规则-->
<!--通过ref属性获得表单对象,调用resetFieleds方法重置表单的字段-->
<el-card>
<el-form :model="form" :rules="rules" ref="formRef" label-width="80px">
<el-form-item label="活动名称" prop="name">
<!--通过form对象访问key-->
<el-input v-model="form.name"></el-input>
</el-form-item>
<p>{{form.name}}</p>
</el-form>
<el-button type="primary" @click="commit()">提交</el-button>
</el-card>
</template>
<script>
export default {
data () {
// 校验规则是一个函数变量
var checkEmail = (rule, value, cb) => { // 验证邮箱的正则表达式
const regEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/
if (regEmail.test(value)) return cb()
cb(new Error('请输入合法的邮箱'))
}
return {
form: {
name: ''
},
rules: {
name: [
{ required: true, message: '不为空', trigger: 'blur' },
{ min: 3, max: 10, message: '长度3-10', trigger: 'blur' },
{ validator: checkEmail, trigger: 'blur' }// 使用自定义校验规则
]
},
}
},
methods: {
commit () {
this.$refs.formRef.validate(valid => {
if (!valid) return// 如果校验未通过则直接返回
})
}
}
}
</script>