前端防止按钮被多次重复点击

2023-10-27

多次重复点击会造成前端显示出bug,需要判断去过滤掉重复多次的点击。这个有好多种方法,逻辑是不管点几次,间隔一定时间才会去触发一次,只产生一次的记录,也就是弄个定时器。

最直接的方法就是等每次点击过后等所有操作结束后释放变量。但是这个太麻烦了,我自己封装不好,还要看重置太麻烦了,不好用。我还是决定试试在前端加个定时器,设置个时间间隔。

<template>
    <button @click="handleClick"></button>
</templage>
<script>
export default {
    methods: {
        handleClick(event) {
            if (this.disabled) return;
            if (this.notAllowed) return;
            // 点击完多少秒不能继续点
            this.notAllowed = true;
            setTimeout(()=>{
                this.notAllowed = false;
            }, this.control)
            this.$emit('click', event, this);
        }
    }
}
</script>

还有个方法就是设置按钮

获取当前点击元素

在发送ajax请求前将点击的按钮设为不可用状态

在请求完成后,将点击按钮状态设为可用

function submitSupEditPage () {
        var _this = this;
 
         $.ajax({
                type: "post",
                url: url,
                cache: false,
                async: false,
                data: $("#WSFrom").serialize(),
                beforeSend:function(){
                    $(_this).prop('disabled',true);
                },
                success: function (data) {
                   //to do
                },
                complete:function(){
                    $(_this).prop('disabled',false);
                }
            }); 
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端防止按钮被多次重复点击 的相关文章

  • 在 HTML5 Javascript 中将 BlobBuilder 转换为字符串

    function blobToString blob var reader new FileReader var d reader onloadend function d callback reader result console lo
  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • Angular.js:如何从无序列表中获取 orderBy 或过滤器来工作?

    尝试根据价格和评级 在返回的对象中 进行排序 我宁愿用 ng click 和 li 来代替使用选择菜单 有没有办法做到这一点 我环顾四周 这是我能想到的最接近的 ul class restaurant filter li i class i
  • jQuery .push 到 .get 调用中的数组给出空结果

    谁能告诉我为什么下面给我一个空字符串 当我console log contentArray in the get 回调函数它显示数据 但是当我尝试在下面的代码中执行它时 结果为空 sectionArray contentArray func
  • 在版本 4.4.6 中禁用 ckeditor 上下文菜单

    我在 Rails4 项目中使用 ckeditor 我尝试了 ckeditor gem 和 ckeditor rails gem 来提供 ckeditor 库 这里有多个帖子 人们希望删除 ckeditor 上下文菜单 以便可以显示本机浏览器
  • 通过 JavaScript 获取表单名称

    我有一个简单的问题 但我在网上找不到好的解决方案 我有这个 HTML 代码
  • 如何使用javascript确保元素仅在圆上朝一个方向移动?

    好吧 我承认我对三角学真的很糟糕 出于上下文的考虑 我将添加我在这里提到的问题中的内容 参考问题 https stackoverflow com a 39429290 168492 https stackoverflow com a 394
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • 为什么 setTimeout 在 Chrome 中触发两次,而在 IE 或 Firefox 中则不然?

    有人能告诉我为什么 javascript 函数 生成新号码 在 Chrome 中触发两次 但在 IE 或 Firefox 中则不会 使用 Chrome 20 0 1132 57 IE9 和 Firefox 13
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • JavaScript推送函数中的动态变量

    我在 JavaScript 中使用推送功能 var chartData for var i 0 i lt 3 i chartData push date new Date year s mon s date s hr s min s sec
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • JavaScript eval("{}") 返回行为?

    根据ECMA 262 规范 http www ecma international org publications files ECMA ST Ecma 262 pdf 以下语句返回1 eval 1 eval 1 eval 1 var a
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

  • 关于网络问题:WARNING: ROS_MASTER_URI [http://EPRobot:11311] host is not set to this machine

    关于网络问题 WARNING ROS MASTER URI http EPRobot 11311 host is not set to this machine 如果需要远程链接 需要在远程服务器将ROS MASTER URI变为启动ros
  • assimp批量转模型,[OpenGL] 使用Assimp导入模型(Qt)

    最近终于决定要在本身的demo中加入模型了 本次选择的是开源库Assimp 以前一直嫌麻烦没有去落实这件事 但实际上 assimp的配置意外的没有我想象中的那么麻烦 html 下载源码后 须要使用cmake进行编译 在上方选择源码位置 和b
  • RouterOS 动态IP接入上网设置教程(超详细)

    根据动态IP接入拓扑图对RouterOS做如下设置 首先启动RouterOS软路由 并且连接电脑 然后打开winbox登录ROS 1 正取区分内 外网 目的是为了方便记忆和区分 2 建立DHCP Client 客户端 进行自动获取外网IP地
  • 数据结构单链表之合并两个有序链表笔记。

    1 0题目描述 将两个升序链表合并为一个新的 升序 链表并返回 新链表是通过拼接给定的两个链表的所有节点组成的 2 0例子演示 输入 l1 1 2 4 l2 1 3 4 输出 1 1 2 3 4 4 示例 2 输入 l1 l2 输出 示例
  • react 之 umi(乌米)--入门介绍

    介绍 umi 中文可发音为乌米 是一个可插拔的企业级 react 应用框架 umi 以路由为基础的 支持类 next js 的约定式路由 以及各种进阶的路由功能 并以此进行功能扩展 比如支持路由级的按需加载 然后配以完善的插件体系 覆盖从源
  • games101,作业2

    需要补充的函数 rasterize triangle 执行三角形栅格化算法 static bool insideTriangle 测试点是否在三角形内 你可以修改此函 数的定义 这意味着 你可以按照自己的方式更新返回类型或函数参数 判断点是
  • ssl工作流程

    1 ssl工作流程 SSL位于应用层和传输层之间 它能够为基于TCP等可靠连接的应用层协议提供安全性保证 SSL协议本身分为两层 上层为SSL握手协议 SSL handshake protocol SSLpassword变化协议 SSL c
  • 【flutter】完美解决导入 dart.ui 中缺少 platformViewRegistry.registerViewFactory 方法

    邂逅 很多情景需要使用 package flutter web ui ui dart 或者 dart ui 比如显示一个网页 import package flutter web ui ui dart as ui 或者 import dar
  • Debian11 修改IP地址和DNS

    修改IP vim etc network interfaces 内容如下 auto ens33 iface ens33 inet static address 192 168 1 200 netmask 255 255 255 0 gate
  • (三十七)期权的隐含波动率计算与图形

    隐含波动率的计算 通过BS公式无法反解出隐含波动率 常用的求解方法有牛顿迭代法和二分法 牛顿迭代法 主要思路是 先设定一个初始波动率值 比如20 然后建立一种迭代关系 如果由初始波动率值得到的期权价格高于市场价格 那么初始波动率减少一定的量
  • D-S证据融合理论python代码

    D S证据融合理论是我们在做决策级融合时十分重要的方法之一 下面我们利用numpy库来实现D S融合过程 具体代码如下所示 import numpy as np def fusion a b m1 np array a m2 np arra
  • 网课脚本教程 【基础】(2) 脚本制作规范

    欢迎来到skeleton系列教程 网课脚本编写教程 制作优良脚本应该有如下规范 一 做任何脚本 优先考虑制作发送 网络请求 的脚本 其次考虑制作自动化脚本 意思就是 做任何脚本 如果你对抓包 发送网络请求可以熟悉掌握 那么优先考虑 发送请求
  • blender 学习笔记

    blender 中文手册 查看 鼠标控制 鼠标中键 转动视角 按住 Alt 正交旋转 Shift 鼠标中键 平移视角 Shift 步行 飞行模式 wasd qe H 隐藏选择物体 Shift H 隐藏未选择物体 Alt H 显示所有 选中物
  • input复选框设置和获取值

  • vscode里面模块缺失的几种可能以及解决方法(部分可能)

    最近在做Python的脚本编写 老是在运行文件时提示缺少模块 通过几天的了解 总结出以下的方法来解决 1 模块没有安装 对于这中的解决方法很简单 哪里少了安哪里 在cmd或者bash里边直接使用下边的命令就可以直接安装 注意 如果你的机器上
  • 在一个有序数组中,查找具体的某个数(二分查找)

    问题 给定已排序好的n个元素arr 0 n 1 现在要在这n 个元素中找出一特定元素x 基本思想 将n个元素分成个数大致相同的两半 取arr n 2 与x进行比较 如果x arr n 2 则找到x 算法终止 如果x
  • CMake 简介

    cmake是kitware公司以及一些开源开发者在开发几个工具套件 VTK 的过程中所产生的衍生品 后来经过发展 最终形成体系 在2001年成为一个独立的开放源代码项目 其官方网站是www cmake org 可以通过访问官方网站来获得更多
  • (杭电多校)2023“钉耙编程”中国大学生算法设计超级联赛(8)

    1005 0 vs 1 双端队列暴力模拟 时间复杂度为O n T 首先预处理0的右边第一个0的下标 1的右边第一个1的下标 0的左边第一个0的下标 1的左边第一个1的下标 然后进行模拟 如果当前是zero的轮次 那么就看双端队列的两端 如果
  • 数据结构与算法基础知识(1)

    文章概述 数据结构的定义与分类 逻辑结构 物理结构 数据结构的定义 数据结构就是关系 是数据元素之间存在的一种或者多种特定关系的集合 数据结构分为两类 a 逻辑结构 b 物理结构 逻辑结构 数据对象中数据元素之间的相互关系 物理结构 数据的
  • 前端防止按钮被多次重复点击

    多次重复点击会造成前端显示出bug 需要判断去过滤掉重复多次的点击 这个有好多种方法 逻辑是不管点几次 间隔一定时间才会去触发一次 只产生一次的记录 也就是弄个定时器 最直接的方法就是等每次点击过后等所有操作结束后释放变量 但是这个太麻烦了