阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

简单介绍v-for中动态校验el-form表单项的实践

71次阅读
没有评论

共计 1460 个字符,预计需要花费 4 分钟才能阅读完成。

导读 在项目开发中,我们经常会遇到表单保存的功能,本文主要介绍了 v -for 中动态校验 el-form 表单项的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
问题描述

在项目开发中,我们经常会遇到表单保存的功能,在表单保存前,常常需要做表单必填项的校验,校验通过以后才去发请求保存表单数据。

但是,这个表单如果是动态的,即:可以新增相同的表单。比如这个表单有输入框和下拉框需要校验,点击添加表格按钮,再新增一个相同的表单,同样新的这个表单对应的输入框和下拉框也需要校验。

本文记录一下对应代码写法思路,我们先看一下效果图:

效果图

简单介绍 v -for 中动态校验 el-form 表单项的实践

代码思路

表单的主数据是要写成对象形式 :model=”ruleForm” 不过既然是要动态的,肯定是要循环呢,所以,可以写成这样:

ruleForm: {
        // 动态循环项数组
        formItemArr: [
          {
            name: "",
            gender: "",
          },
        ],
      },

点击添加表格的时候,就可以直接 push 对应项就行啦,即,这样:

// 添加一个表格
    addForm () {
      let itemObj = {
        name: "",
        gender: "",
      };
      this .ruleForm.formItemArr.push(itemObj);
    },

重点来喽,因为是循环的,所以 prop 也要变成动态的了,要拼接上 index,就变成根据索引去找对应的校验项了,即为::prop=”‘formItemArr.’ + index + ‘.name'”,这样的话,就变成了:prop=”formItemArr.0.name”、prop=”formItemArr.1.name”、prop=”formItemArr.2.name” … 这样的话,就可以照顾到每一项中的每一个绑定的值了,校验就不会漏掉

校验规则写成内联就可以触发校验函数 this.$refs[“ruleForm”].validate((val) => {}) 了

......
完整代码

演示的话,大家直接复制粘贴即可

  
    添加表格
    保存表格
    
    
    
      
        
          
        
        
          
            
            
          
        
      
    
  

 

export default {data() {
    return {ruleForm: {
        // 动态循环项数组
        formItemArr: [
          {
            name: "",
            gender: "",
          },
        ],
      },
    };
  },
  met hods: {
    // 添加一个表格
    add Form() {
      let ite mObj = {
        name: "",
        gender: "",
      };
      this.rule Form.form Item Arr.push(itemObj);
    },
    // 保存表格
    save Form() {this .$refs["ruleForm"].validate((val) => {if (val) {con sole.log("符合要求,保存成功", this.ruleForm);
        } else {cons ole.log("error submit!!");
          re turn false;
        }
      });
    },
  },
};

 

. box {
  wi dth: 100%;
  hei ght: 100%;
  box -sizing: border-box;
  pad ding: 24px;
  .for mform {
    wi dth: 360px;
    .for mformItemClass {
      pa dding-top: 24px;
      bo rder: 2px dashed #ccc;
      ma rgin-bottom: 18px;
    }
  }
}

到此这篇关于 v -for 中动态校验 el-form 表单项的实践的文章就介绍到这了。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1460字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中