按钮仅在JavaScript使用计时器禁用它时提交,以防止双重提交

时间:2015-10-08 23:55:30

标签: javascript button

我想要一个按钮被禁用(仅当来自"验证者"验证组未被触发的验证者)以防止双重提交。我使用JavaScript来禁用点击按钮。但是,ALSO开始阻止提交表单(没有触发验证器)。我设法在禁用按钮之前添加一个小计时器。这是代码:

    var btn = document.getElementById("btnRegister");
    btn.addEventListener("click", function () {
        if (Page_ClientValidate("grpRegister")) {
            var myVar = setInterval(function () { btn.disabled = true; clearInterval(myVar); }, 100);
        }
    });

只有100毫秒的延迟,它起作用了。所以我的问题是, ANY计时器值有效吗?并且为什么会这样,它不能立即被禁用?

修改

只需 1ms 即可使其正常运行。以下代码 DON' T 工作:

    var btn = document.getElementById("ContentPlaceHolder1_btnRegistar");
    btn.addEventListener("click", function () {
        if (Page_ClientValidate("Registar")) {
            btn.disabled = true;
        }
    });

0 个答案:

没有答案