欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > 循环中使用el-form

循环中使用el-form

2025/5/21 0:58:50 来源:https://blog.csdn.net/LL22222222/article/details/147982284  浏览:    关键词:循环中使用el-form

循环中使用el-form 主要是校验问题
el-table 的数据 :data=“ruleForm.tableData”
:prop=“‘tableData.’ + $index + ‘.name’” :rules=“rules.name”

<el-button type="primary" @click="addNewData">新增项目</el-button><el-form :model="ruleForm" ref="ruleFormRef" :rules="rules"><el-table :data="ruleForm.tableData"><el-table-column lable="name"><template #default="{ row, $index }"><el-form-item :prop="'tableData.' + $index + '.name'" :rules="rules.name"><el-input v-model="row.name"></el-input></el-form-item></template></el-table-column><el-table-column lable="min"><template #default="{ row, $index }"><el-form-item :prop="'tableData.' + $index + '.min'" :rules="rules.min"><el-input v-model="row.min"></el-input></el-form-item></template></el-table-column><el-table-column lable="max"><template #default="{ row, $index }"><el-form-item :prop="'tableData.' + $index + '.max'" :rules="rules.max"><el-input v-model="row.max"></el-input></el-form-item></template></el-table-column><el-table-column label="操作"><template #default="{ row, $index }"><el-button link @click="confirm(row, $index, ruleFormRef)">确定</el-button><el-button link @click="ruleForm.tableData.splice($index, 1)">删除</el-button></template></el-table-column></el-table></el-form><el-button type="primary" @click="submit(ruleFormRef)"> 提交</el-button>
import type { FormInstance } from 'element-plus';
import { reactive, ref } from 'vue';
interface ruleForm {tableData: [{ name: String, min: String, max: String, status: Boolean }]
}
const ruleFormRef: any = ref<FormInstance>()
const ruleForm: any = reactive<ruleForm>({tableData: [{ name: '', min: '', max: '', status: false }]
})
const rules: any = reactive({name: [{ required: true, message: '必填项', trigger: 'blur' }],min: [{ required: true, message: '必填项', trigger: 'blur' }],max: [{ required: true, message: '必填项', trigger: 'blur' }]
})

在这里插入图片描述
// 单行验证

const confirm = async (row: any, index: number, formEl: FormInstance | undefined) => {const { isEdit, ...partial } = row;const props = Object.keys(partial).map(item => `tableData.${index}.${item}`);await formEl?.validateField(props, async (valid: any) => {if (valid) {// 验证通过,} else {// 验证不通过}})
}

// 总体验证提交

const submit = async (formEl: FormInstance | undefined) => {if (!formEl) returnawait formEl.validate(async (valid, fields) => {if (valid) {// 验证通过,} else {// 验证不通过}})
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词