el-form-表单验证字段值为数组里面的电话
如果 el-form 的表单验证字段需要验证的是数组里面的电话号码,可以通过以下步骤实现:
-
在 el-form 组件中,使用 v-model 绑定一个数组,例如:
<el-form :model="form">,其中form是一个包含多个字段的对象,其中包含一个数组字段。 -
在需要验证的表单项中,使用
v-for循环渲染数组中的电话号码输入框,例如:<el-input v-for="(phone, index) in form.phones" :key="index" v-model="phone"></el-input>,其中phones是form对象中的一个数组字段,phone是循环中的每个元素,index是元素的下标。 -
使用自定义验证函数来验证数组中的每个电话号码。在 el-form 组件中,使用
:rules属性来指定一个包含验证函数的数组,例如::rules="[validatePhone]",其中validatePhone是一个自定义的验证函数。 -
在验证函数中,遍历数组中的每个电话号码,使用正则表达式来验证是否符合电话号码格式,例如:
validatePhone(rule, value, callback) { for (let i = 0; i < value.length; i++) { let re = /^1[3-9]\d{9}$/; if (!re.test(value[i])) { callback(new Error('请输入正确的电话号码')); } } callback(); },其中rule是当前验证规则,value是当前表单项的值,callback是验证的回调函数。遍历数组中的每个电话号码,使用正则表达式来验证是否符合电话号码格式,如果不符合则调用callback(new Error('请输入正确的电话号码'))来返回错误信息,如果全部符合则调用callback()来通过验证。
完整代码示例:
<template>
<el-form :model="form" label-width="80px">
<el-input v-for="(phone, index) in form.phones" :key="index" v-model="phone"></el-input>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form>
</template>
<script>
export default {
data() {
return {
form: {
phones: ['', '', '']
}
}
},
methods: {
submitForm() {
this.$refs.form.validate(valid => {
if (valid) {
console.log('表单验证通过');
} else {
console.log('表单验证失败');
}
})
},
validatePhone(rule, value, callback) {
for (let i = 0; i < value.length; i++) {
let re = /^1[3-9]\d{9}$/;
if (!re.test(value[i])) {
callback(new Error('请输入正确的电话号码'));
}
}
callback();
}
},
mounted() {
this.$nextTick(() => {
this.$refs.form.validate();
})
},
computed: {
rules() {
return {
validatePhone: [
{ validator: this.validatePhone, trigger: 'blur' }
]
}
}
}
}
</script>
原文地址: https://www.cveoy.top/t/topic/m11 著作权归作者所有。请勿转载和采集!