vue+elementUI动态增加表单项并添加验证


参考elementUI官网以及网上的其他一些资料。话不多说,直接贴代码。
htmt部分:

< div  id =" app "  style =" width: 500px; ">
         < el-form  :model =" environmentForm "  ref =" environmentForm ">
             < el-row  :gutter =" 24 "  v-for =" (item, index) in environmentForm.items "  :key =" item.key ">
                 < el-col  :span =" 6 ">
                     < el-form-item  :prop =" 'items.' + index + '.name' "
                         :rules =" {required: true, message: '名称不能为空', trigger: 'blur'} ">
                         < el-input  v-model =" item.name "></ el-input >
                     </ el-form-item >
                 </ el-col >
                 < el-col  :span =" 6 ">
                     < el-form-item  :prop =" 'items.' + index + '.variable' "
                         :rules =" {required: true, message: '变量值不能为空', trigger: 'blur'} ">
                         < el-input  v-model =" item.variable "></ el-input >
                     </ el-form-item >
                 </ el-col >
                 < el-col  :span =" 3 "  v-if =" environmentForm.items.length !== 1 ">
                     < el-button  @click =" removeEnvironmentForm(item) "  class =" el-icon-delete "  size =" mini "  circle >
                     </ el-button >
                 </ el-col >
                 < el-col  :span =" 3 ">
                     < el-button  @click =" addEnvironmentForm "  size =" mini "  class =" el-icon-plus "  circle ></ el-button >
                 </ el-col >
             </ el-row >

             < el-form-item >
                 < el-button  type =" primary "  @click =" submitForm('environmentForm') ">提交 </ el-button >
                 < el-button  @click =" resetForm('environmentForm') ">重置 </ el-button >
             </ el-form-item >
         </ el-form >

     </ div >
< script >
     var vm ;
     $( function  ()  {
        vm  =  new Vue( {
            el :  ' #app ' ,
            data :  {
                environmentForm :  {
                    items : [ {
                        name :  '' ,
                        variable :  '' ,
                     }]
                 }
             },
             mounted :  function  ()  {},
            methods :  {
                 resetForm ( formName )  {
                     this .$refs[formName] . resetFields() ;
                 },
                 removeEnvironmentForm ( item )  {
                     var index  =  this .environmentForm .items . indexOf(item)
                     if (index  !==  - 1{
                         this .environmentForm .items . splice(index ,  1)
                     }
                 },
                 addEnvironmentForm ()  {
                     this .environmentForm .items . push( {
                        name :  '' ,
                        variable :  '' ,
                        description :  '' ,
                        key :  Date . now()
                     }) ;
                 },
             }
         })
     })
</ script >

实现效果:单个时

 

 多个时显示删除按钮


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM