将setTimeout与jquery一起使用

时间:2015-09-01 17:21:04

标签: jquery ajax settimeout

我想把一个计时器放在打开的盒子上。我把它放在我的按钮上

NetworkStream

这是我的函数,它调用我的控制器并在15分钟后关闭案例。

 <input type="submit" value="Checkout" name="submitAction" class="btn btn-block alert-success" onclick="unlockcase()" />

它击中了功能和控制器,但它在没有定时器工作的情况下立即发生。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

首先将您的html更改为此

     <button type="button" class="btn btn-block alert-success" onclick="unlockcase()">Checkout</button>

然后您的javascript可以跟随

    function unlockcase() {
        setTimeout(function () {
            var id = @Model.ID;

            $.ajax({
                type: 'POST',
                url: '/Case/UnlockCase',
                data: 'id=' + id,
                success: function () {
                    window.location.reload(true);
                }
             });
         }, 15 * 1000 * 60);
     }

setTimeoout中的等待时间单位为millisecond,因此15 * 1000表示15秒,15 * 1000 * 60表示15分钟。

答案 1 :(得分:0)

如果您正在使用jQuery,为什么不在按钮上使用.click()事件。像这样:

HTML:

<input type="submit" value="Checkout" name="submitAction" class="btn btn-block alert-success myButton" />

使用Javascript:

$('.myButton').click(function() {
    var counter = 1;
    var timer = setInterval(function(){
        if(counter > 900000){ //If it passed 15 minutes.
            //DO YOUR AJAX CALL
            var id = @Model.ID;
            $.ajax({
                type: 'POST',
                url: '/Case/UnlockCase',
                data: 'id=' + id,
                success: function () {
                    window.location.reload(true);
                }
             });
            //Clear the loop
            clearInterval(timer); 
        }
        counter++;
    }, 1000);
});

JSFiddle:http://jsfiddle.net/hoggen1o/