正常的表单验证 :
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="search_area">
<el-form-item label="联系电话" prop="phone" class="itemRequiredStyle">
<el-input v-model="ruleForm.phone" placeholder="请输入手机号码" class="inp_normal inpStyle"></el-input>
</el-form-item>
</el-form>
<script>
export default {
name:"",
// 验证手机
let checkPhone = (rule, value, callback) => {
let reg = /^1[345789]\d{9}$/
if (!reg.test(value)) {
callback(new Error('请输入11位手机号'))
} else {
callback()
}
}
return{
rules: {
phone: [
{ required: true, message: '请输入手机号', trigger: 'blur' },
{ type: 'number', validator: checkPhone, message: '请输入11位有效手机号号码', trigger: ['blur', 'change'] }
},
}
</script>
但是表单空间是动态创建的时候 直接在data内写 validator 是报错的 此时需要单独对表单控件 单独在行内进行验证
将validator的校验规则写在methods 内 动态创建时 需要注意 :prop值 具体写法参考
https://element.eleme.io/#/zh-CN/component/form
下面以手机号验证作为案例:
<el-form-item
class="itemStyle"
label="联系电话"
label-width="80px"
:prop="'parent_info.' + index + '.phone'"
:rules="[
{required: true, message: '电话不能为空',trigger: ['blur', 'change']},
{ validator: (rule, value, callback)=>{checkPhone(rule, value, callback)}, trigger: ['blur', 'change'] }
]"
>
<el-input v-model="item.phone" placeholder="请输入" class="inp_normal inpStyle" ></el-input>
</el-form-item>
// methods
methods:{
//验证手机号
checkPhone(rule, value, callback){
let reg = /^1[345789]\d{9}$/
if (!reg.test(value)) {
callback(new Error('请输入11位手机号'))
} else {
callback()
}
},
}
效果如图