"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. 大白话建造者模式(Builder Pattern)

    前言 起初打算按照之前的日产系列写建造者模式.但参考了网上的很多文章,让我对建造者模式更加的困惑,也害怕自己无法已易懂的方式进行解释.最后通过Google发现了一篇英文文章Builder,使我茅塞顿开 ...

  2. 倍增笔记ST表

    https://noip-1253948194.cos.ap-beijing.myqcloud.com/%E5%80%8D%E5%A2%9E-ST%E7%AE%97%E6%B3%95.mp4 1123 ...

  3. lvs+keepalived部署k8s v1.16.4高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

  4. java 三元运算

    一.格式: 数据类型 变量名称 = 条件判断 ? 表达式a : 表达式b; 二.注意: 1.不是打印操作时,需要 三元运算的右则 2.表达式a和表达式b的值,必须要和变量名称 的数据类型相等 貌似和C ...

  5. Java入门 - 语言基础 - 21.Scanner类

    原文地址:http://www.work100.net/training/java-scanner.html 更多教程:光束云 - 免费课程 Scanner类 序号 文内章节 视频 1 概述 2 使用 ...

  6. 美食家App开发日记5

    今天将ListView控件用更强大的Recyclerview控件取代,最后调试了程序. 感觉Android编程难度实在是远远高于javaweb,初次接触,感觉有很多东西想实现,想得很容易,但是实现起来 ...

  7. C语言实现按位拷贝

    在程序开发过程中,我们经常会用到按位拷贝一串二进制数,在此提供一个按位拷贝的函数给大家参考,函数源码如下: #define char_t char #define uint8_t unsigned c ...

  8. 解决浮点运算精度不准确,BigDecimal 加减乘除

    package com.kflh.boxApi.utils.util; import java.math.BigDecimal; /** * @program: BoxApi * @descripti ...

  9. hadoop中两种上传文件方式

    记录如何将本地文件上传至HDFS中 前提是已经启动了hadoop成功(nodedate都成功启动) ①先切换到HDFS用户 ②创建一个user件夹 bin/hdfs dfs -mkdir /user ...

  10. qt中的拖拽及其使用技巧

    关于qt中的拖放操作,首先可以看这篇官方文档:http://doc.qt.io/qt-5.5/dnd.html 一.QDrag 首先是创建QDrag,可以在mousePressEvent或者mouse ...