[elementUI]v-for动态数据循环表单验证的处理方式

最近被《哪吒之魔童降世》的主题曲洗脑了,哈哈哈里面有一句歌词是这样的

风跟着我飞有两道火光,天上海里的神仙能耐我何妨

从不拘泥任何世俗凡人的目光,我要奔向前方那光芒

表单验证的时候:

prop改为:prop,形式为'formInlineList.'+index+'.formInline'

formInlineList.'+index+'.formInline就是数据结构与数据

每一个循环中的<el-form-item>都需要加:rules

去rules时要取吧rules加上取全

结构( 与平常一样该绑定绑定,改ref ref,就是for循环以后需要注意,还有数据结构的写法 )

<el-form :model="formInline" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
     <div v-for="(item, index) in formInline.formInlineList" :key="index">
<!-- formInlineList就是数据结构、要与表单formInLine放在一起,就是放在它里面 --> <el-form-item :label="item.label" :prop="'formInlineList.' + index + '.formInlineVal'" :rules="item.rules.formInlineVal" > <el-input v-model="item.formInlineVal" :placeholder="item.placeHolder"></el-input> </el-form-item> </div> </el-form>

数据结构

rules就算不用也要写上绑定不触发,要是删除掉了就报错

提交表单正常提交就可以

formInline: {
        formInlineList: [
          {
            index: 1,
            formInlineVal: "",
            label: "优惠券名称:",
            placeHolder: "请输入优惠券名称",
            rules: {
              formInlineVal: [
                { required: true, message: "请输入优惠券名称", trigger: "blur" }
              ]
            }
          },
          {
            index: 2,
            formInlineVal: "",
            label: "消费限制:",
            placeHolder: "消费满XX元可用,不填表示不限",
            rules: {
              formInlineVal: [{ required: false }]
            }
          }
}

 写到这会报rules的错,不过没关系,在外面重新定义一个rules然后绑上

上方循环的地方已经用div隔开了写在div下面绑上prop正常操作就可以了

猜你喜欢

转载自www.cnblogs.com/home-/p/11695246.html