vue+elementUI多表单同时提交及表单校验最新解决方案

 更新时间:2024年03月08日 09:35:04   作者:垃圾侠  
假设有一个页面,需要分三步填写三个表单,且每个表单位于独立的组件中,然后最后保存同时提交,如何进行表单必填项校验,下面小编给大家介绍vue+elementUI多表单同时提交及表单校验最新解决方案,感兴趣的朋友一起看看吧

问:

假设有一个页面,需要分三步填写三个表单,且每个表单位于独立的组件中,然后最后保存同时提交,如何进行表单必填项校验?

答:

1. 为每个组件设置ref,值分别为ref1,ref2,ref3,再为各个组件中的el-form设置独立的ref和rules,三个表单的ref值分别为form1,form2,form3.

// 组件1 <Component1 ref="ref1"></Component1>
<template>
    <div>
        <el-form ref="form1"></el-form>
    </div>
</template>
// 组件2 <Component2 ref="ref2"></Component2>
<template>
    <div>
        <el-form ref="form2"></el-form>
    </div>
</template>
// 组件3 <Component3 ref="ref3"></Component3>
<template>
    <div>
        <el-form ref="form3"></el-form>
    </div>
</template>

2. 父级组件引入三个子组件

<Component1 ref="ref1"></Component1>
<Component2 ref="ref2"></Component2>
<Component3 ref="ref3"></Component3>
<button @click="onSave">保存</button>

3. 保存方法实现

<script>
...
methods: {
    onSave(){
        let formData1 = this.$refs.ref1.$refs.form1;
        let formData2 = this.$refs.ref2.$refs.form2;
        let formData3 = this.$refs.ref3.$refs.form3;
        Promise.all([formData1, formData2 ,formData3].map(this.getFormPromise)).then(res=>{
            const validateResult = res.every((item) => !!item);
               if (validateResult) {
                 // 校验通过,获取各个组件中的表单内容,提交后台    
                }else {
                    this.$message.warning('必填内容未填写');
                }
            })
    },
    getFormPromise(form) {
            return new Promise((resolve) => {
                form.validate((res) => {
                    resolve(res);
                });
            });
        },
}
</script>

到此这篇关于vue+elementUI多表单同时提交及表单校验解决方案的文章就介绍到这了,更多相关vue elementUI多表单内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue 开发企业微信整合案例分析

    vue 开发企业微信整合案例分析

    这篇文章主要介绍了vue 开发企业微信整合,结合具体案例形式分析了vue.js使用企业微信JSSDK实现手机端程序可以和企业微信进行整合功能的相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • Vue如何使用cdn加载资源加快打包速度

    Vue如何使用cdn加载资源加快打包速度

    外部的库文件,可以使用CDN资源,或者别的服务器资源等,下面这篇文章主要给大家介绍了关于Vue如何使用cdn加载资源加快打包速度的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • vue-cli3.0+element-ui上传组件el-upload的使用

    vue-cli3.0+element-ui上传组件el-upload的使用

    这篇文章主要介绍了vue-cli3.0+element-ui上传组件el-upload的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • vite+vue3不清除浏览器缓存直接下载最新代码的解决方案

    vite+vue3不清除浏览器缓存直接下载最新代码的解决方案

    vite+vue3项目发布后,浏览器上还是旧代码,没有及时更新到最新代码,下面通过本文给大家分享vite+vue3不清除浏览器缓存直接下载最新代码的解决方案,感兴趣的朋友一起看看吧
    2024-06-06
  • vue实现滑块拖拽校验功能的全过程

    vue实现滑块拖拽校验功能的全过程

    vue验证滑块功能,在生活中很多地方都可以见到,使用起来非常方便,这篇文章主要给大家介绍了关于vue实现滑块拖拽校验功能的相关资料,需要的朋友可以参考下
    2021-08-08
  • vue-element-admin关闭eslint的校验方式

    vue-element-admin关闭eslint的校验方式

    这篇文章主要介绍了vue-element-admin关闭eslint的校验方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 浅谈vue加载优化策略

    浅谈vue加载优化策略

    这篇文章主要介绍了浅谈vue加载优化策略,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • vue项目中存储与使用后端传递过来的token

    vue项目中存储与使用后端传递过来的token

    vue作为一个单页面应用,vuex作为它的状态管理工具,它至少是可以很好的保存这个token值,下面这篇文章主要给大家介绍了关于vue项目中存储与使用后端传递过来的token的相关资料,需要的朋友可以参考下
    2023-03-03
  • Vue.js实现对视频预览的示例代码

    Vue.js实现对视频预览的示例代码

    本文主要介绍了Vue.js实现对视频预览的示例代码,通过监听文件选择事件和使用FileReader API,可以实现视频文件的预览功能,感兴趣的可以了解一下
    2025-01-01
  • vue3+ElementPlus封装函数式弹窗组件详解

    vue3+ElementPlus封装函数式弹窗组件详解

    这篇文章主要为大家详细介绍了如何利用vue3和ElementPlus封装函数式弹窗组件,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-08-08

最新评论