防止事件重复提交代码

var _timer = {};
function delay_till_last(id, fn, wait) {
    if (_timer[id]) {
        window.clearTimeout(_timer[id]);
        delete _timer[id];
    }

    return _timer[id] = window.setTimeout(function() {
        fn();
        delete _timer[id];
    }, wait);
}

////////////////////////////////////
$el.on(‘click‘, function() {
    delay_till_last(‘myclick‘, function() {
        // run something
    }, 500);
});
这个写法可以保证只有最后一次点击被触发,方法就是后一次事件会覆盖前一次事件,如果超过指定时间还没有新的事件,就执行最后一个事件

delay_till_last()这个函数是我在前端很常用的函数,用在用户可能密集输入的场合下,比如文本框持续输入,等到输入完毕再开始检查

$input.on(‘keypress‘, function() {
    // 用户停止输入300ms后开始检查
    delay_till_last(‘check_input‘, function() {
        // 检查文本框内容是否正确
    }, 300);
});
时间: 2024-10-12 10:43:46

防止事件重复提交代码的相关文章

jquery防止重复提交代码实例

jquery防止重复提交代码实例:在很多应用中,可能有些数据只能够被允许提交一次,也就是提交之后不能够再提交第二次,下面就是一段能够实现此功能的简单代码,需要的可以参考一下,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/&quo

js防止重复提交代码

if (checkSubmitFlg == true) { console.log("禁止频繁操作.."); layer.close(ide); return false; } console.log("执行核心业务.."); //执行代码 checkSubmitFlg = true; setTimeout(function() { checkSubmitFlg = false; }, 5000); 原文地址:https://www.cnblogs.com/q135

防止表单重复提交的代码

防止表单重复提交的代码:有时候可能因为各种原因出现表单重复提交现象,单丝这往往并不是我们想要的结果,下面就介绍一种防止表单重复提交的代码,希望能够给大家带来或多或少的帮助,代码如下: $(document).ready(function() { $('form').submit(function() { if(typeof jQuery.data(this, "disabledOnSubmit") == 'undefined') { jQuery.data(this, "di

防止刷新/后退引起的重复提交问题的Java Token代码,非Struts

贴子转自http://hi.baidu.com/bobylou,转之前并没有验证文章里的方法是不是有效,估计原作者把它放到blog之前应该做过测试了吧. Struts本身有一套完善的防止重复提交表单的Token(令牌)机制,但笔者目前的项目自写的framework没有用到Struts,故也得自写防止用户因为后退或者刷新来重复提交表单内容的Token机制.不难,容易实现. 实现原理:一致性.jsp生成表单时,在表单中插入一个隐藏<input>字段,该字段就是保存在页面端的token字符串,同时把

web前端防治重复提交

web前端开发中防治重复提交 web前端数据请求或者表单提交往往通过对dom的点击事件来操作,但是往往因为认为点击过快(少年手速挺快的嘛),或者因为响应等待使得用户误人为没操作而重复很多次点击,造成表单数据的连续重复提交,造成用户体检的不好,甚至影响到整个系统的安全性.而前端的防治重复提交至少很有效的防治了人为正常操作下的很多不必要麻烦.下面就来讲讲如何有效避免前端的表单重复提交 表单提交有以下几种方式: <form name="form" method="post&q

设置按钮不可用避免重复提交

 设置按钮不可用,避免重复提交 编写人:CC阿爸 2015-1-29 今天在这里,我想与大家一起分享如何处理项目中经常出现用户重复提交的情况,为了防止这种情况,最常用的方法就是在用户点击按钮后将该按钮设为不可用,笔者在实际开发当中遇到了多种不同的情况,在此做个小结,以供参考.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 由于刚开始进行的web开发,很多时候使用的为html控件,因此处理起来相当简单 如:先前开发的报销系统,在提交单据审批时,时常会出现重复审批下一流程的bug. Aspx前

mod_jk2引起Apache+Tomcat重复提交问题

以前项目中遇到的一个很诡异的问题,记录下来分享一下. 一个很老的项目的生产环境是采用Apache httpd + Tomcat ,使用mod_jk2的插件进行整合,其实这个插件早已停止更新了,反而是mod_jk(1.x)插件的生命周期还在维持. 具体问题的现象是,项目中有一些耗时较多的处理页面,例如一个创建新项目的业务画面,前台页面submit之后,后台要处理一系列的文件,还要登录 数据库等,其实在设计阶段已经考虑到了重复提交的问题,所以画面上做了控制(提交之后画面按钮禁用,直到后台操作完成).

转载: .net 防止页面刷新重复提交

题记: 在处理页面事件时,我们会经常会碰到这样的情况:当我们在提交一项页面表单时,在提交成功后,当我们试图按F5刷新页面时,数据会再次的被重复提交.那么 asp.net应用应用服务器是无法区别这是正常点击按钮添加还是f5刷新添加,那么这样就会导致在数据库里会存在n 条一莫一样的数据.为什么在原Asp开发程序中不会碰到这样的问题呢?我觉得是因为Asp程序主要都是将表单提交给另外一个页面处理,并且,这个页面处理 之后,将跳转到另外一个提示页面.那么在Asp程序中,只需要在回退时将页面设置为过期那么就

修复bootstrap validate重复提交的bug

前言:[修复bootstrap validate重复提交的bug],项目是基于bootstrap和jfinal开发的,这个过程的确很痛苦,但也伴随着很多收获,就如同本文一样,之前尝试用了bootstrap的validate来验证表单数据,确实很不错,然而这中间也夹带着不经意的bug,很隐蔽. bug调查 调查结果: 1. 当不使用bootstrap validate时,就不会出现如图提示问题. 2. 只有首次点击提交,会重复提交两次,而接下来重新输入用户名后,就单次提交了. bug发生环境 <f