可以使用 el-form 组件中的 rules 属性来进行表单的必填校验。在 rules 中定义每个表单项的验证规则,包括必填验证、长度验证、格式验证等。对于 el-table 中的树形结构,可以在渲染树形结构时给每个节点添加一个 isRequired 属性,然后在 rules 中根据该属性来进行必填验证。具体实现可以参考以下代码:

<el-table :data="tableData" :tree-props="{ children: 'children' }">
  <el-table-column prop="name" label="名称" />
  <el-table-column prop="age" label="年龄" />
  <el-table-column prop="gender" label="性别" />
  <el-table-column label="操作">
    <template slot-scope="{ row }">
      <el-button @click="deleteRow(row)">删除</el-button>
    </template>
  </el-table-column>
</el-table>

<el-form ref="form" :model="formData" :rules="formRules">
  <el-form-item label="姓名" prop="name">
    <el-input v-model="formData.name" />
  </el-form-item>
  <el-form-item label="年龄" prop="age">
    <el-input v-model.number="formData.age" />
  </el-form-item>
  <el-form-item label="性别" prop="gender">
    <el-radio-group v-model="formData.gender">
      <el-radio label="男">男</el-radio>
      <el-radio label="女">女</el-radio>
    </el-radio-group>
  </el-form-item>
</el-form>
export default {
  data() {
    return {
      tableData: [
        {
          name: '张三',
          age: 20,
          gender: '男',
          children: [
            { name: '李四', age: 22, gender: '男', isRequired: true },
            { name: '王五', age: 18, gender: '女', isRequired: false }
          ]
        },
        {
          name: '赵六',
          age: 25,
          gender: '女',
          children: [
            { name: '钱七', age: 30, gender: '男', isRequired: true }
          ]
        }
      ],
      formData: {
        name: '',
        age: '',
        gender: ''
      },
      formRules: {
        name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
        age: [{ required: true, message: '请输入年龄', trigger: 'blur' }],
        gender: [{ required: true, message: '请选择性别', trigger: 'change' }]
      }
    }
  },
  methods: {
    deleteRow(row) {
      // 删除某一行数据
    },
    submitForm() {
      this.$refs.form.validate(valid => {
        if (valid) {
          // 表单验证通过,提交表单
        } else {
          // 表单验证不通过,提示错误信息
        }
      })
    }
  }
}

在上述代码中,我们为 el-table 中的数据加上了 isRequired 属性,表示该节点是否必填。在 el-form 中,我们定义了表单的验证规则,其中 name、age、gender 分别对应表单中的三个输入项。在验证规则中,我们使用了 required 规则,并根据 isRequired 属性来动态决定是否进行必填验证。在提交表单时,我们调用 el-form 的 validate 方法来进行表单验证,如果验证通过则提交表单,否则提示错误信息。

Element UI 表格树形结构表单必填校验 - 详解与代码示例

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

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