JS倒计时在按钮点击时不起作用

时间:2014-06-02 14:04:31

标签: javascript jquery redirect countdown

我在实施JS重定向倒计时时遇到问题... 在这里你可以看到按钮html,当我点击它时它应该开始重定向倒计时:

<footer>
    <button type="submit" class="btn btn-primary">
        <i class="fa fa-refresh"></i> Reset Password
    </button>
</footer>

这是js:

$("button").click(function() {
    var count = 3;
    var countdown = setInterval(function(){
    $("#redirect").text(count);
        if (count == 0) {
            clearInterval(countdown);
            window.open('index.php', "_self");

        }
    count--;
    }, 1000);
});

问题在于,当我点击按钮时,它没有做任何不计数重定向的事情。如果我将脚本移出按钮点击事件,那么它可以正常工作..我错过了什么,在这里不明白吗?

谢谢..

1 个答案:

答案 0 :(得分:3)

您的按钮是submit按钮,即它将提交当前表单并肯定会刷新页面,这将导致您的脚本被终止。

如果要避免提交按钮的默认行为,则应添加e.preventDefault()

$("button").click(function(e) {
    var count = 3;
    var $that = $(this);
    var countdown = setInterval(function(){
        $("#redirect").text(count);
        if (count == 0) {
            clearInterval(countdown);

            window.open('index.php', "_self");

            // submit now
            $that.closest('form').submit();
        }
        count--;
    }, 1000);
    e.preventDefault();
});