elementui弹窗页按钮重复提交问题解决

这篇具有很好参考价值的文章主要介绍了elementui弹窗页按钮重复提交问题解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、BUG场景

ruoyi平台,页面弹出窗有提交按钮,在提交时连续多次点击会发生重复提交。

二、错误方案

给按钮增加  :loading="submitLoading" 属性。

<el-dialog :title="title" :v-if="open" :visible.sync="open" @close="cancel" >
    <el-button type="primary" :loading="submitLoading" @click="submitForm">提交</el-button>
</el-dialog>


data() {
    return{
        open: false,
        submitLoading: false,
    }
},

methods: {

    cancel() {
      this.open = false;
      this.submitLoading = false;
    },
    /** 提交按钮 */
    submitForm() {
        ......
        this.submitLoading = true;
        this.api.add(formData).then(response => {
            .....
            this.cancel();
        });
    }
}

验证后发现并没有解决重复提交问题。

查询资料发现:el-dialog的关闭不是瞬间发生,是关闭动画,是动画,真是活久见了。侧面证明自己菜。

三、正确方案

给按钮增加  :loading="submitLoading||!open" 属性。

上面代码中只需要修改loading这一处就行了。文章来源地址https://www.toymoban.com/news/detail-625589.html

<el-dialog :title="title" :v-if="open" :visible.sync="open" @close="cancel" >
    <el-button type="primary" :loading="submitLoading||!open" @click="submitForm">提交</el-button>
</el-dialog>


data() {
    return{
        open: false,
        submitLoading: false,
    }
},

methods: {

    cancel() {
      this.open = false;
      this.submitLoading = false;
    },
    /** 提交按钮 */
    submitForm() {
        ......
        this.submitLoading = true;
        this.api.add(formData).then(response => {
            .....
            this.cancel();
        });
    }
}

按钮逻辑

行为 按钮submitLoading 弹窗open 按钮状态
打开弹窗前 false false 禁用
打开弹窗后 false true 可用
数据请求前 true true 禁用
请求结束&关闭弹窗 false false 禁用

到了这里,关于elementui弹窗页按钮重复提交问题解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp 封装弹窗组件(popup ,单选按钮,可以自选表单并提交表单)附有完整代码

     ↓界面结构如下 首先利用radio-group 中的label分成两部分,这样点单选按钮就可以出发整个label包裹的样式↓(点击label区域单选按钮亮起,触发radioChange方法改变radioState的状态) ↓  选中的效果可以参照↓ 完整代码如下↓ 如何使用该组件↓

    2024年02月16日
    浏览(28)
  • 前端如何防止接口重复提交

    接口重复提交指的是在网络通信中,同一个请求被客户端多次发送到服务器端的情况。这种情况可能由于多种原因导致,例如用户在等待期间多次点击提交按钮、网络超时后客户端重新发送请求、客户端发送的请求在网络传输过程中出现重复等。 接口重复提交可能会导致多种

    2024年04月22日
    浏览(27)
  • 【vue】前端页面点击按钮弹窗播放m3u8格式视频

    最终效果: 1.表格操作列 2.initVideo方法 3.弹出层代码 4.showAll_dialog样式 5.第2步跳转的video.html页面代码,用dplayer播放的,放在项目根目录的public文件夹即可

    2024年02月04日
    浏览(38)
  • 处理ElementUI组件默认样式多次重复问题

    在postcss.config.js文件里添加配置项:

    2024年02月07日
    浏览(31)
  • 小程序按钮重复点击解决方案

    小程序是直面用户便捷的应用,而在用户使用时往往都会涉及到关键节点的按钮点击,例如,注册登录时,页面跳转时,发送验证码时,付钱还款,弹出提示等等。。。如果没有控制好按钮重复点击的问题,那么影响用户体验。当然有时候也会被同行吐槽,这人不行。。。

    2024年02月13日
    浏览(30)
  • 小程序 解决自定义弹窗滚动穿透问题,解决弹窗背景内容滚动问题

    方法一、catchtouchmove=\\\"true\\\", 可以实现弹框背景不滚动,但是也会导致弹框自身无法滚动,如果你的弹窗本身是不需要滚动的,用这个方法是极佳的。 view class=\\\"pop\\\" catchtouchmove=\\\"true\\\"     view class=\\\"content\\\"/view /view 方法二、固定定位(可以解决背景不要滚动,弹框能滚动的问题)

    2024年02月03日
    浏览(28)
  • qt 实现点击按钮显示弹窗,再次点击按钮或点击弹窗之外的区域,弹窗消失。

    LumenWidget 为主界面 setting_ 为弹窗界面 tbn_map_setting 为点击按钮 弹窗界面要先设置如下属性 第一步 主界面增加事件过滤器 第二步 将此事件过滤器加入到全部控件中 在主界面的构造函数加入以下代码 或 第三步 设置按钮点击槽函数,本文为 tbn_map_setting

    2024年02月11日
    浏览(42)
  • vue中使用element-ui,重复点击按钮或多个请求同时报错时弹出多个message弹框解决方法

    1. 用这种 2. 参考: vue中使用element-ui,重复点击按钮或多个请求同时报错时弹出多个message弹框解决方法_donggua_123的博客-CSDN博客

    2024年02月11日
    浏览(36)
  • 解决电脑弹窗问题

    办公技巧如何清理弹窗(电脑弹窗如何清理) 2022-11-11 办公技巧 22 作者:admin 今天给各位分享办公技巧如何清理弹窗的知识,其中也会对电脑弹窗如何清理进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 本文目录一览: 3个方法教你彻底关闭电

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包