"use strict"

class Func{

    constructor(){}
//防止多次提交或执行(在规定时间段内只允许执行一次) 默认 3000ms
isRun(id, isExit, time){
    //id : string 必须
    //isEnit : boolean 可选 如果为 true 则删除对应 id 的对象
    //time : number 可选 默认间隔时间 3000 秒
if(this.list === undefined){Func.prototype.list = {};}
if(id === undefined || typeof(id) !== "string"){return "参数id未定义";}
if(isExit === true){delete(this.list[id]); return "删除对象: "+id;}
let o = this.list[id];
if(!o){this.list[id] = {time:time || 3000, nowTime:new Date().getTime()}; return true;}
let t = new Date().getTime() - o.nowTime;
if(t < o.time){return o.time - t;}
o.nowTime = new Date().getTime();
return true;
} }

调用:

 //绑定事件
v.addEvent(v.get("loginBoxId"), "click", (e)=>{
let id = e.target.id; if(id === "BackId"){//返回按钮
history.back(); }else if(id === "RegisterId"){//注册按钮
location.href = "../register/view.php"; }else if(id === "LoginId"){//登录按钮
if(new Func().isRun("login0") !== true){console.log('停止'); return;}//防止连续提交
console.log('执行');
let el_err = v.get("errorId"), el_e = v.get("EmailId"), el_p = v.get("PasswordId");
if(!el_e.value || !el_p.value){el_err.innerHTML = "Please fill in email address and password!"; return;}
//把 用填写的邮箱地址和密码发送给login.php进行验证返回true 或false
new Ajax({
url:"./login.php",
data:"data="+JSON.stringify([el_e.value, el_p.value]),
success:(data)=>{
if(JSON.parse(data) === true){
location.href = "../index.php";
return;
}
el_err.innerHTML = "Illegal email or password!";
}
});
}
});

展示:

javascript 防止多次提交或执行(在规定时间段内只允许执行一次) 默认 3000ms的更多相关文章

  1. JavaScript form表单提交与验证

    原网址:https://blog.csdn.net/vipwxs/article/details/79119701 一.form对象的属性: name:获取表单的名称,该name一般给JS使用 met ...

  2. 【JavaScript】Html form 提交表单方式

    源:http://blog.csdn.net/wang02011/article/details/6299517 1.input[type='submit'] 2.input[type='image' ...

  3. 项目总结15:JavaScript模拟表单提交(实现window.location.href-POST提交数据效果)

    JavaScript模拟表单提交(实现window.location.href-POST提交数据效果) 前沿 1-在具体项目开发中,用window.location.href方法下载文件,因windo ...

  4. Javascript阻止表单提交

    Javascript阻止表单提交 Html 1.<form name="loginForm" action="login.aspx" method=&qu ...

  5. javascript实现表单提交加密

    javascript实现表单提交加密 通常表单的提交有两种方式,一是直接通过html的form提交,代码如下: <form action="" method="&q ...

  6. 每日学习心得:CustomValidator验证控件验证用户输入的字符长度、Linq 多字段分组统计、ASP.NET后台弹出confirm对话框,然后点击确定,执行一段代码

    2013-9-15 1.    CustomValidator验证控件验证用户输入的字符长度 在实际的开发中通常会遇到验证用户输入的字符长度的问题,通常的情况下,可以写一个js的脚本或者函数,在ASP ...

  7. 高程(4):执行环境、作用域、上下文执行过程、垃圾收集、try...catch...

    高程三 4.2.4.3 一.执行环境 1.全局执行环境是最外层的执行环境. 2.每个函数都有自己的执行环境,执行函数时,函数环境就会被推入一个当前环境栈中,执行完毕,栈将其环境弹出,把控制器返回给之前 ...

  8. update语句的执行步骤及commit语句的执行顺序

    update语句的执行步骤和其他DML语句的执行步骤是一样的包含insert .delete语句等,执行步骤如下: 一.如果数据和回滚数据不在数据库高速缓存区中,则oracle服务器进程将把他们从数据 ...

  9. JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。

    反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足. while语句结构: while(判断条件) { 循环语句 } 使用w ...

随机推荐

  1. css写斜角

    项目开发中遇到了这样的效果,百度了一波,可以使用css3的伪类实现: /*斜角公用*/1.外层的div加class='wrapper' 并需要设置相对定位 .wrapper:before { -moz ...

  2. DateTime.Now

    // 2008年4月24日 System.DateTime.Now.ToString( " D " );// 2008-4-24 System.DateTime.Now.ToStr ...

  3. 蒙蔽的FormBody

    作为一个不算新人的新人,今天看到 了FormBody这个绿色字体,之前没有怎么注意过, 好了 ,发现了一篇文章,记录下. 这篇文章总结下来就是: 在前端穿过的数据是Json格式(当我们设置Conten ...

  4. org.springframework.core.type.classreading.ClassMetadataReadingVisitor 异常

    今天项目启动的时候发现了一个异常: Exception in thread "main" org.springframework.beans.factory.BeanDefinit ...

  5. 自己动手搭环境—unit 1、Struts2环境搭建

    1.web.xml中增加Struts2配置 <filter> <filter-name>struts2</filter-name> <filter-class ...

  6. restframework 解析器、渲染器、url控制组件

    一.解析器 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 1.分类 from rest_framework.parsers impo ...

  7. 20200102模拟赛 问题A 排列

    先说句新年好哈哈哈 今年又是颓废的一年呢... (开始就满满负能量真好) 分析: 真是有趣的数学递推找规律问题呢... 考场上没想出来,然后n2^n的状压也想不到 索性20*20直接打表2333... ...

  8. 团队第一次作业(By七个小矮人)

    一.团队简介 1.团队名称:七个小矮人 2.团队成员列表 201731024137 马驰(队长) 201731021227 于丁 201731024114 杨汶桐 201731024125 李朋珂 2 ...

  9. 使用requests模块的网络编程

    python操作网络,也就是打开一个网站,或者请求一个http接口,本篇是介绍使用request模块的使用方式. 在使用requests模块之前需要先安装,在cmd中输入:pip install re ...

  10. 基于BIO的实时Socket读写操作

    文章目录 前言 Socket类2.1 Socket的通信过程2.2 控制Socket连接2.3 设置Socket的选项 ServerSocket类3.1 构造ServerSocket3.2 Serve ...