在倒数计时结束前一分钟显示提醒框

时间:2018-08-09 06:42:21

标签: javascript php jquery jquery-countdown

我正在开发一个在线测验模块,该模块会在30分钟后自动提交测验。现在,我想显示一个警报框,在该对话框中,学生将在第29分钟收到“剩下1分钟才能完成测验”的通知。我无法弄清楚如何实现这一点。我有如下所示的代码。

$(document).ready(function(){
    function get15dayFromNow() {   
       return new Date(new Date().valueOf() + <?php echo $duration ; ?> * 60 * 1000);
    }

    var $time_spend = $('#time_spend');
    $time_spend.countdown(get15dayFromNow(), function(event) {
        $(this).val(event.strftime('%M:%S'));
    });

    var $clock = $('#clock');
    $clock.countdown(get15dayFromNow(), function(event) {
        $(this).html('Time Left :   '+'00:'+event.strftime('%M:%S'));
    })
    .on('finish.countdown', function() {
        submitForm();
    });

    function submitForm()
    {
        document.getElementById("target").submit();
    }
});

4 个答案:

答案 0 :(得分:0)

如果您使用像这样的倒计时脚本:
https://www.w3schools.com/howto/howto_js_countdown.asp

只需修改if语句:

if (distance < WHATEVERYOUWANT) {
    alert("Message");
}

答案 1 :(得分:0)

以下是如何实现此目的的示例:

function countdown (timer) {
  
 console.log(timer)
  
  if(timer ===5){
    alert('halfWay');
  } else if (timer === 0){
    return;
  } 
  
  setTimeout(() => countdown(timer - 1), 1000);

}

countdown(10);

只需调整实现中的数字即可获得所需的结果。

答案 2 :(得分:0)

我将使用用户开始测验的时间戳在php中启动会话,并通过AJAX定期检查该值。如果剩余时间为<= 60秒,请显示警报框并停止请求。

答案 3 :(得分:0)

也许这可行:

var $time_spend = $('#time_spend');
$time_spend.countdown(get15dayFromNow(), function(event) {
   $(this).val(event.strftime('%M:%S'));
   if (event = WHATEVER){
      alert('Message');
   }
});