如果 el-form 的表单验证字段需要验证的是数组里面的电话号码,可以通过以下步骤实现:

  1. 在 el-form 组件中,使用 v-model 绑定一个数组,例如:<el-form :model="form">,其中 form 是一个包含多个字段的对象,其中包含一个数组字段。

  2. 在需要验证的表单项中,使用 v-for 循环渲染数组中的电话号码输入框,例如:<el-input v-for="(phone, index) in form.phones" :key="index" v-model="phone"></el-input>,其中 phonesform 对象中的一个数组字段,phone 是循环中的每个元素,index 是元素的下标。

  3. 使用自定义验证函数来验证数组中的每个电话号码。在 el-form 组件中,使用 :rules 属性来指定一个包含验证函数的数组,例如::rules="[validatePhone]",其中 validatePhone 是一个自定义的验证函数。

  4. 在验证函数中,遍历数组中的每个电话号码,使用正则表达式来验证是否符合电话号码格式,例如: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>
el-form-表单验证字段值为数组里面的电话

原文地址: https://www.cveoy.top/t/topic/m11 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录