javascript - 防止在网页中重复单击按钮
问题描述
我目前正在构建一个 Django 应用程序,到目前为止我已经实现了两个功能。
1) 以表格形式提交用户数据
2)从谷歌表中读取数据并将其显示在网页上。单击数据库中的数据更新时,此页面上有一个刷新按钮。
问题:- 当用户多次单击提交按钮时,比如说 5 次,相同的数据会被插入 5 次,这是一个大问题。并且在多次单击刷新按钮的情况下,出现“重复键值违反唯一约束”之类的错误
因此,请向我建议一种使按钮不执行多次以防止重复并处理任何极端情况的方法。
解决方案
您可能希望在单击一次后销毁 eventListener。
function oneTimeEvent(element, eventType, callback) {
element.addEventListener(eventType, function(e) {
e.target.removeEventListener(e.type, arguments.callee);
return callback(e);
});
}
var btn = document.querySelector('button');
oneTimeEvent(btn, 'click', function () {
alert('Hello there! Did you click on me?');
});
<button>Click</button>
当用户点击刷新按钮时,可以重新加载页面,并且会重新设置事件监听器。
推荐阅读
- java - 使用 JNA 访问包含向量的结构
- asp.net-mvc - Webgrease 用于商业托管服务
- scala - Scala:列表中带有负数的 foldLeft 问题
- ruby - AWS Lambda Ruby - 环境变量不可用
- f# - 如何在 F# 中检查接口实现
- python - 将表数据转换为python元组
- c# - WPF 应用程序中的内存分配问题(可能泄漏),使用 Pages 和 TabContol
- django - 使用 Django 创建 REST API
- java - 如何仅使用一个 HTTP 请求(JSON 文件)实例化 2 个不同的对象
- html - 如何过滤内容在 div 或 span 中的 HTML 表格?