JS 防止重复点击提交

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
    <script type="text/javascript">
        function consoleLog() {//输出日志
            console.log(getCurrentDateTime());
        }
        function doubleClick() {//两次调用测试按钮
            var button1 = document.getElementById('test');
            button1.onclick();
            button1.onclick();
        }
        function getCurrentDateTime() {//获取当前时间
            var myDate = new Date();
            return myDate.toLocaleTimeString();
        }
        var date = new Array();
        function disableButton(button, validateGroup) {//设置在指定时间按钮无法双击
            date.push(new Date());
            if (date.length > 1
                    && (date[date.length - 1].getTime() - date[date.length - 2].getTime() < 1000))//小于1秒则认为重复提交
            {
                event.cancelBubble = true; //测试时发现,如果直接单独设置cancelBubble、或者returnValue来取消事件,经常取消不了,依然存在重复提交的可能。因此只好用返回值来实现手工控制!
                return false;
            }
            if (typeof (Page_ClientValidate) == 'function'
                    && ((validateGroup == undefined && Page_ClientValidate() == false)
                            || (validateGroup != undefined && Page_ClientValidate(validateGroup) == false))) { //如果指定了ValidateGroup,则只验证改组;如果未指定,则验证全部验证控件
                return false;
            }

            button.disabled = true;
            return true;
        }
    </script>
</head>
<body>
    <div>
        <input id="test" type="button" onclick="if (!disableButton(this)) return false; consoleLog();" value="测试按钮" />
        <input type="button" onclick="doubleClick();" value="双击调用测试按钮" />
    </div>
</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值