对于循环表单,需要在表单中使用 v-for 循环渲染表单项。在验证表单时,需要对每个表单项进行单独的验证。

可以通过 v-model 绑定表单数据,并在每个表单项上设置 ref 属性,以便在验证时获取表单项的值。

在提交表单时,可以遍历所有表单项进行验证,如果有表单项验证不通过,则提示用户并阻止表单提交。

以下是一个示例代码:

<template>
  <el-form ref="form" :model="form" :rules="rules">
    <el-form-item v-for="(item, index) in formItems" :key="index" :label="item.label" :prop="item.prop">
      <el-input v-model="form[item.prop]" :ref="item.prop"></el-input>
    </el-form-item>
    <el-button type="primary" @click="submitForm">提交</el-button>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        // 表单数据
      },
      formItems: [
        // 表单项配置
      ],
      rules: {
        // 表单验证规则
      }
    }
  },
  methods: {
    submitForm() {
      // 遍历表单项进行验证
      for (let i = 0; i < this.formItems.length; i++) {
        const item = this.formItems[i];
        const value = this.$refs[item.prop][0].value;
        const result = this.$refs.form.validateField(item.prop);
        if (result !== true) {
          this.$message.error(`${item.label}验证不通过`);
          return;
        }
      }
      // 表单验证通过,提交表单
      // ...
    }
  }
}
</script>

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

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