vue3 el- table 嵌套el-form表单验证vue3

295 阅读1分钟

重点 圈起来考 :prop="items[${scope.$index}].name" :rules="rules.name"


<template>

<el-form ref="tableForm" :model="formData" label-width="120px">

<el-table :data="formData.items" style="width: 100%;">

<el-table-column prop="name" label="名称" width="180">

<template #default="scope">

<el-form-item :prop="`items[${scope.$index}].name`" :rules="rules.name">

<el-input v-model="scope.row.name"></el-input>

</el-form-item>

</template>

</el-table-column>

<!-- 其他列 -->

</el-table>

<el-button type="primary" @click="validateForm">提交</el-button>

</el-form>

</template>

<script setup>

import { reactive, ref } from 'vue';

const tableForm = ref(null);

const formData = reactive({

items: [

{ name: '' },

// 其他数据项

]

});

const rules = {

name: [

{ required: true, message: '请输入名称', trigger: 'blur' }

]

};

const validateForm = () => {

tableForm.value.validate((valid) => {

if (valid) {

console.log('验证成功,提交数据:', formData);

} else {

console.log('验证失败');

return false;

}

});

};

</script>