• vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法


    vue elementUI form组件动态添加el-form-item并且动态添加rules必填项校验方法

    先看一下效果图(想在表单里动态的增删 form-item,然后添加rules,校验其必填项;

    ):
    在这里插入图片描述

    html部分

    <div v-for="(item, index) in form.labels" :key="index" class="label">
        <el-form-item label="名称:"
        :prop="'labels.' + index + '.name'"
        :rules="{
              required: true, message: '请输入', trigger: 'blur'
        }"
        class="middleInput">
          <el-input v-model.trim="item.name" maxlength="30" placeholder="请输入"></el-input>
          <i class="el-icon-circle-plus-outline icon" v-if="(index === (form.labels.length - 1))" @click.prevent="addKey(item)"></i>
          <i class="el-icon-remove-outline icon" v-if="(form.labels.length > 1)" @click.prevent="removeKey(item, index)"></i>
        </el-form-item>
        <el-form-item label="值:"
        :prop="'labels.' + index + '.value'"
        :rules="{
              required: true, message: '请输入', trigger: 'blur'
        }"
        class="middleInput">
          <el-input maxlength="100" show-word-limit type="textarea" :rows="3" v-model.trim="item.value" placeholder="请输入"></el-input>
        </el-form-item>
     </div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    js

    //data:
    form: {
        labels: [{
        	name: '',
        	value: ''
        }]
    },
    
    // methods:
    addKey (item) {
      this.form.labels.push({
        name: '',
        value: ''
      })
    },
    removeKey (item, index) {
      this.form.labels.splice(index, 1)
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    注意

    核心代码:

    :prop="'labels.' + index + '.name'"
    :rules="{
           required: true, message: '请输入', trigger: 'blur'
     }"
    
    • 1
    • 2
    • 3
    • 4
    • prop里的值有格式要求,以本demo为例:“表单属性数组key名 + ‘.’ + 索引值 + ‘.’ + 数组里对象的key名”
    • rules里填写校验不成功触发条件和提示语;
  • 相关阅读:
    iOS持续集成
    互斥锁在线程中的使用
    小程序技术在信创操作系统中的应用趋势:适配能力有哪些?
    从“三个比肩”看vivo的高端移动影像野心
    国际经济学名词解释
    正整数的阶乘
    来一套完整的面试题
    使用docker安装elasticsearch 7.4.2
    混凝土板材及砌块生产线数字孪生可视化管理系统,实现智慧工厂车间智能化数字化管理
    第四章运算符
  • 原文地址:https://blog.csdn.net/qq_35517283/article/details/133947448