Skip to content

Instantly share code, notes, and snippets.

@upangka
Last active December 25, 2019 07:13
Show Gist options
  • Save upangka/f37965c565d7b59bac1b0b225abeb6bc to your computer and use it in GitHub Desktop.
Save upangka/f37965c565d7b59bac1b0b225abeb6bc to your computer and use it in GitHub Desktop.
vue elementui 动态数组校验
  1. 需要对一个动态数组对象进行校验,需要用el-form :model 绑定我们要校验的数据 参考链接: jsfiddle net 例子

遇到的主要问题是prop,以及rules的不知道怎么设置issues Error: please transfer a valid prop path to form item!-->解决思路

<el-form-item
      v-for="(domain, index) in MainForm.dynamicValidateForm.domains"
      :label="'Domain' + index"
      :key="domain.key"
      :prop="'domains.' + index + '.value'"
      :rules="rules.value"
    >

解决方法

还有一个比较有意思的案例 elementui prop 动态验证

  1. prop为addIntegralArr而不是ruleForm.addIntegralArr
  2. 由于是数组需要以:prop="'addIntegralArr.'+index+'.left'"的形式,其中addIntegralArr. 不能少,index索引,不能少,后面的属性可以是任意属性
<template>
  <el-form :model="ruleForm" ref="ruleForm" label-width="120px" :rules="rules">

    <el-form-item
      v-for="(item, index) in ruleForm.addIntegralArr"
      :label="'Domain' + index"
      :key="index"
      :prop="'addIntegralArr.'+index+'.left'"
      :rules="rules.value"
    >
      <el-input v-model="item.left"></el-input><el-button @click.prevent="removeDomain(domain)">Delete</el-button>
    </el-form-item>
</el-form>
</template>
<script>
export default {
  data () {
    return {
      ruleForm: {

        addIntegralArr: [
          {
            left: 201
          },
          {
            left: 201
          }
        ]

      },
      rules: {
        value: [
          { required: true, message: 'Please input' }
        ]
      }
    }
  }
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment