首页 > 其他分享 >vue+elementui实现tab多表单提交

vue+elementui实现tab多表单提交

时间:2023-02-01 21:44:36浏览次数:69  
标签:vue elementui formData 表单 tab 组件 getData refs

使用场景:同页面中下tab栏切换多个form表单组件,只有一个提交按钮,各组件下的表单数据分别提交,tab栏的兄弟组件传值。

实现方式:

  1. 父组件通过两次调用$refs获取子组件的方法。
  2. 子组件内部getData方法返回表单数据,父调用子组件1的getData方法获取子组件1的表单数据并传给子组件2。

父组件:

<template>   <div>     <el-tabs v-model="activeName" type="card" @tab-click="handleClick">       <el-tab-pane label="form1" name="first">         <form-comp-one ref="formComp1" />       </el-tab-pane>       <el-tab-pane label="form2" name="second">         <form-comp-two ref="formComp2" />       </el-tab-pane>     </el-tabs>     <el-button class="submit-btn" size="small" @click="submit">提交</el-button>   </div> </template> <script> import FormCompOne from "@/components/FormCompOne.vue"; import FormCompTwo from "@/components/FormCompTwo.vue"; export default {   components: {     FormCompOne,     FormCompTwo,   },   data() {     return {       activeName: "first",     };   },   methods: {     // handleClick(tab, event) {     //   console.log(tab, event);     // },     submit() {       this.$refs.formComp1.submitForm();       const formData1 = this.$refs.formComp1.getData();       this.$refs.formComp2.submitForm(formData1.code);     },   }, }; </script> <style> .submit-btn {   position: absolute;   right: 10px;   top: 60px; } </style>   子组件1: <template>   <el-form     ref="formData"     :model="formData"     :rules="formRules"     label-width="80px"     style="width: 450px"   >     <el-form-item label="编号" prop="code">       <el-input class="f-input" v-model="formData.code"></el-input>     </el-form-item>     <el-form-item label="产品名称" prop="name">       <el-input class="f-input" v-model="formData.name"></el-input>     </el-form-item>   </el-form> </template> <script> class formData {   constructor() {     this.name = "";     this.code = "";   }   static getRule() {     return {       name: [{ required: true, message: "请填写名称", trigger: "blur" }],       code: [{ required: true, message: "请填写编号", trigger: "blur" }],     };   } } export default {   data() {     return {       formData: new formData(),       formRules: formData.getRule(),     };   },   methods: {     getData() {       // 返回子组件的form       return this.formData;     },     submitForm(){         // 表单数据提交     }   }, }; </script> <style scoped> </style>  

标签:vue,elementui,formData,表单,tab,组件,getData,refs
From: https://www.cnblogs.com/yuro12138/p/17084219.html

相关文章

  • error: undefined reference to `vtable for QDemoThread‘
    问题描述:error:undefinedreferenceto`vtableforXXXXXXXXXX‘出现原因:使用Qt对于自行创建的类如果需要支持信号和槽机制,必须要在类内头部位置添加Q_OBJECT宏。如果使......
  • QTableView的样式设置和常用函数
    QTableView用于显示二维数据,常常与QStandardItemModel结合使用。目录样式设置表头样式设置表头样式设置注意事项表格样式设置常用函数model相关tableView相关headerView......
  • ElementUI 中 el-form 验证 el-upload 上传图片校验不通过
    ————————————————版权声明:本文为CSDN博主「xiaoxiaodeDream」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog......
  • Latex Table重命名
    1.Table修改为任意名,使用如下头文件\captionsetup[table]{font={footnotesize},labelfont={default},labelformat={default},labelsep=period,name={自定义名称}}2.T......
  • vue
    产生背景​​ 播报​​随着​​手机摄像头​​的发展,越来越多的人开始使用手机拍照和摄像。摄像一般来说要比拍照门槛高,但是视频传播的信息量又远大于照片。VUE就诞生在这......
  • C# DataTable中Compute方法用法集锦(数值/字符串/运算符/表等操作)
    DataTabledt=newDataTable();//嵌套的三元运算牛叉到五体投地objectobj=dt.Compute("iif(1000=5,1000,iif(100>100,4001,2000))",null);Response.Write(obj);......
  • vue 中 css 的全局污染问题
    问题场景:通过一个入口文件index.js,export几个自定义的vue组件,如果其中一个组件中有全局的样式,那么 import其中任一个vue组件之后,全局的样式就会被引入,间接的造成......
  • vue3 + vite 报错处理
    TypeError:vite.defineConfigisnotafunction执行命令:npminstall@vitejs/plugin-vue-D config里面配置代码:importvuefrom'@vitejs/plugin-vue'exportdefa......
  • Java并发编程——CompletableFuture详解
    一、简介JDK5引入了Future模式。Future接口是Java多线程Future模式的实现,在java.util.concurrent包中,可以来进行异步计算。 Future模式是多线程设计常用的一种设计模式......
  • Java并发编程——CompletableFuture源码解析
    前言JDK8为我们带来了CompletableFuture这个有意思的新类,它提供比Future更灵活更强大的回调功能,借助CompletableFuture我们可以更方便的编排异步任务。 由于Com......