el-form多层动态表单验证问题解决

本文介绍了在Vue.js中遇到的动态表单验证问题,开发者在尝试为多层循环的表单元素设置验证规则时遇到了错误。通过查阅资料和官方文档,发现需要在内部循环中嵌套`el-form`来正确处理prop和验证规则。修复后的代码展示了如何在循环内正确构建动态表单验证,使得项目内容能够成功进行验证。
摘要由CSDN通过智能技术生成

原代码结构如下:

<el-form :model="addObject" ref="objectForm" :rules="add_object_rules">
	<el-form-item label="目标名称" prop="object_name">
	</el-form-item>
	<el-form-item label="周期范围" prop="objYear">
	</el-form-item>
	<el-form-item label="负责单位" prop="group_ids">
	</el-form-item>
	//一层循环
	<div v-for="(group, gindex) in addObject.addProGroup" :key="gindex">
		<el-form-item   class="add_project_form" 
		v-for="(pro, index) in group.pros"
		:key="index" >
		//二层循环
		<el-form-item
              class="add_project_form"
              v-for="(pro, index) in group.pros"
              :key="index">
			<el-form-item
	           :prop="'pros.' + index + '.project_content'"
	           :rules="add_object_rules.project_content"
	           label="项目内容" >
	           //具体验证项
	           <el-input v-model="pro.project_content"> </el-input>
	         </el-form-item>
         </el-form-item>
		</el-form-item>
	</div>
</el-form>

看了官网也查阅了很多资料,都有动态表单验证的说法,于是我编写了以上的结构,结果报了这个错
在这里插入图片描述
就是说我prop对不上值,调试了好久发现结构也对,数据也取到了,十分郁闷,然后我终于查到了,原来里面那层还要套一个el-form…好吧,合理。

修改后代码:

<el-form :model="addObject" ref="objectForm" :rules="add_object_rules">
	<el-form-item label="目标名称" prop="object_name">
	</el-form-item>
	<el-form-item label="周期范围" prop="objYear">
	</el-form-item>
	<el-form-item label="负责单位" prop="group_ids">
	</el-form-item>
	//一层循环
	<div v-for="(group, gindex) in addObject.addProGroup" :key="gindex">
		<el-form-item   class="add_project_form" 
		v-for="(pro, index) in group.pros"
		:key="index" >
		//二层循环
		//---------新增--start-----
			<el-form :model="group">
			//---------新增--end-----
				<el-form-item
		              class="add_project_form"
		              v-for="(pro, index) in group.pros"
		              :key="index">
		              
					<el-form-item
			           :prop="'pros.' + index + '.project_content'"
			           :rules="add_object_rules.project_content"
			           label="项目内容" >
			           //具体验证项
			           <el-input v-model="pro.project_content"> </el-input>
			         </el-form-item>
		         </el-form-item>
		         //---------新增--start-----
	         </el-form>
	         //---------新增--end-----
		</el-form-item>
	</div>
</el-form>

参考文章: https://segmentfault.com/a/1190000014366951

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值