zoukankan      html  css  js  c++  java
  • elmentui 动态表单添加及添加验证功能的实现

    效果如下  点击按钮  添加一个新的表单  提交时进行验证

     

     上代码

    <el-form-item label="申报限制" v-for="(item,index) in form.boundTabs"  :key="index"
                :prop="'boundTabs['+index+'].bound'"
                :rules="{required: true, message: '请输入申报限制', trigger: 'blur' }">
                   <el-row justify="space-between"  type="flex">
                     <el-col :span="20">
                          <el-input placeholder="请输入申报限制"  v-model="item.bound" />
                     </el-col>
                     <el-col :span="3">
                        <el-button type="danger" icon="el-icon-delete" circle  @click="removeRow(index)"></el-button>
                     </el-col>
                   </el-row>
    </el-form-item>

    <el-form-item>
              <el-button icon="el-icon-plus" @click="addBound">添加申报限制</el-button>
    </el-form-item>

    data(){

      return {

       form:{

             boundTabs:[

              {bound:""}

             ],

        }  

       }

    }

    methods:{

                        

    // 添加表单
    addBound(){
       if(!this.form.boundTabs){
            this.form.boundTabs=[];
        }
        let newArr=[ ...this.form.boundTabs,{
            bound:""
        }]
         this.$set(this.form,'boundTabs',newArr); //vue this.$set方法响应式改变视图
    },
    // 删除按钮
    removeRow(index){
         console.log(index);
         this.form.boundTabs.splice(index, 1) // splice直接改变视图
    }

      

    }

    需要注意的一点是:

    普通表单验证单项依靠的是prop..而动态生成的表单要用:prop

    书写的语法是  :prop="'boundTabs['+index+'].bound'"

    boundTabs 是v-for绑定的数组,index是索引,bound是表单绑定的v-model的名称,然后用.把他们链接起来。

    所以总结起来的语法就是:prop="'v-for绑定的数组.' + index + '.v-model绑定的变量'"

    还有一个需要注意就是v-for的写法,要将表单的model名写进去

  • 相关阅读:
    BDB c++例子,从源码编译到运行
    Linux的nm查看动态和静态库中的符号
    转:js包装DOM对象
    svn笔记4属性Properties
    c++ 友元函数
    转:js包装DOM对象
    整除规则(原理,性质)
    回溯法求幂集
    转:Javascript继承机制的设计思想
    javascript prototype __proto__区别
  • 原文地址:https://www.cnblogs.com/ddqyc/p/15545461.html
Copyright © 2011-2022 走看看