Vue 使用 Element 组件时 v-for 循环里的表单项验证方法 对 Vue 使用 Element 组件时 v-for 循环里的表单项验证方法进行详细介绍。主要讲解了如何在使用 Element 组件时处理 v-for 循环里的表单项验证问题。 Element 组件提供了一套完善的表单验证方法,官方文档中也详细介绍了相关 API。正常情况下,我们可以按照官方文档添加规则,需要验证的表单项设置 prop,然后提交表单时通过 form 的 validate 方法验证表单项。 但是,如果表单项里有通过 v-for 动态生成的表单项,如何设置验证规则就变得复杂了。官方文档并没有明确的说法,我们需要通过查找解决方案和实际验证,总结出来解决方法。 解决方法是,我们需要在 v-for 循环中为每个表单项添加唯一的 key,然后在 rules 中使用这个 key 来指定验证规则。例如: ```html <template> <div class="content-body"> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row :gutter="10"> <el-col :span="12" :offset="0"> <el-form-item label="套餐名称:" prop="activityName" id="activityName"> <el-input v-model="form.activityName"></el-input> </el-form-item> </el-col> </el-row> <el-row :gutter="10"> <el-col :span="12"> <el-form-item label="状态:"> <el-radio v-model="form.status" label="1">上线</el-radio> <el-radio v-model="form.status" label="0">下线</el-radio> </el-form-item> </el-col> </el-row> <el-row :gutter="10"> <el-col :span="2" style="width:120px;"> <div class="sub-title">梯度设置:</div> </el-col> <el-col :span="20"> <el-row :gutter="10" v-for="(item,index) in form.productGroup" :key="index"> <el-col :span="6"> <el-form-item :label="'商品数量:' + index" :prop="'productGroup.' + index + '.num'"> <el-input v-model="item.num" type="number" size="small" style="width:80px;"></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item :label="'优惠价格:'" :prop="'productGroup.' + index + '.price'"> <el-input v-model="item.price" type="number" size="small" style="width:80px;"></el-input> </el-form-item> </el-col> <el-col :span="4"> <i class="el-icon-remove-outline" @click="deleteLadder(index)"></i> <i class="el-icon-circle-plus-outline" @click="addLadder" v-if="index==0"></i> </el-col> </el-row> </el-col> </el-row> <el-form-item size="medium" class="div-submit"> <el-button @click="resetForm('form')">取消</el-button> <el-button type="primary" @click="submitForm('form')">提交</el-button> </el-form-item> </el-form> </div> </template> <script> export default { data() { return { form: { activityName: '', status: '', productGroup: [ { num: '', price: '' } ] }, rules: { activityName: [ { required: true, message: '请输入套餐名称', trigger: 'blur' } ], status: [ { required: true, message: '请选择状态', trigger: 'change' } ], productGroup: { num: [ { required: true, message: '请输入商品数量', trigger: 'blur' } ], price: [ { required: true, message: '请输入优惠价格', trigger: 'blur' } ] } } } }, methods: { submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { // 提交表单 } else { console.log('error submit!!'); return false; } }); }, resetForm(formName) { this.$refs[formName].resetFields(); }, deleteLadder(index) { this.form.productGroup.splice(index, 1); }, addLadder() { this.form.productGroup.push({ num: '', price: '' }); } } } </script> 在上面的代码中,我们使用了 v-for 循环来生成多个表单项,并且在每个表单项中添加了唯一的 key。然后,在 rules 中,我们使用这个 key 来指定验证规则。 通过这种方式,我们可以轻松地处理 v-for 循环里的表单项验证问题。

























- 粉丝: 6
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 随书光盘的有效管理及网络阅览实现技术-管理现状.docx
- 园林景观设计软件.docx
- 文化人类学-计算机科学与技术--常向阳.doc
- 浅析计算机软件技术在化工设计中的应用.docx
- IMS与网络融合技术研究分析tzq.doc
- 计算机技术在教育中的多方应用.docx
- 基于单片机的水温自动控制系统方案设计书.doc
- 浅析互联网金融模式.docx
- ppt模板:蓝色简约风人工智能PPT模板.pptx
- 大学计算机基础教程试题库专业证书.doc
- 基于物联网的智能仓储系统的设计.docx
- 计算机网考最新修改版.doc
- 电子商务税收征管问题分析及对策思考.doc
- Splunk大数据分析实战指南
- 面向对像程序设计试卷.doc
- C单片机的旋转显示屏设计与实现.doc



- 1
- 2
前往页