您的位置:首页 > 教育 > 锐评 > 免费软件的特征_泰安网站建设推荐_电商网站建设哪家好_seo交流中心

免费软件的特征_泰安网站建设推荐_电商网站建设哪家好_seo交流中心

2025/5/2 18:33:42 来源:https://blog.csdn.net/qq_36020334/article/details/147224056  浏览:    关键词:免费软件的特征_泰安网站建设推荐_电商网站建设哪家好_seo交流中心
免费软件的特征_泰安网站建设推荐_电商网站建设哪家好_seo交流中心

实际业务需求场景: 新增或编辑页面(基础信息表单,一个数据列表的表单),数据列表里面的表单数是动态添加的。数据可新增、可删除,在表单保存前,常常需要做表单必填项的校验,校验通过以后才去发请求保存表单数据。

1、效果图

2、完整代码实现


<template><ul class="violation-content"><li v-for="(item,index) in formData.tableData" :key="item.key"><div class="content-item"><el-form-item :prop="`tableData[${index}].name`"  :rules="{required: true, message: '请输入', trigger: 'blur'}" label-width="1" style="margin-bottom: 0;"><el-input type="text" clearable placeholder="请输入" v-model.trim="item.name"></el-input></el-form-item></div><div class="content-item"><span @click="delete(index)">删除</span><el-button type="primary" v-if="index === (formData.tableData.length-1)" @click="add">添加</el-button></div></li></ul>
</template>
export default {data() {return {formData:{tableData: [],}};},created() {this.$set(this.formData, 'tableData', [{name: '', key: Date.now()}])}, methods: {add() {this.formData.tableData.push({name: '',key: Date.now()})},delete(index) {this.formData.tableData.splice(index, 1)},},
};
</script>

 注意:

重点!!!,因为是循环的,所以prop也要变成动态的了,要拼接上index,就变成根据索引去找对应的校验项了,即为::prop="'tableData.' + index + '.name'" ,这样的话,就变成了:prop="tableData.0.name"、prop="tableData.1.name"、prop="tableData.2.name" ... 这样的话,就可以绑定到每一项中的每一个绑定的值了,校验就不会漏掉。

校验规则写成内联就可以触发校验函数this.$refs["formData"].validate((val) => {})

版权声明:

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

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