4

我正在开发一个在线测验模块,测验在 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

4 回答 4

0

也许这可以工作:

var $time_spend = $('#time_spend');
$time_spend.countdown(get15dayFromNow(), function(event) {
   $(this).val(event.strftime('%M:%S'));
   if (event = WHATEVER){
      alert('Message');
   }
});
于 2018-08-09T20:36:15.037 回答
0

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

于 2018-08-09T07:49:54.700 回答
0

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

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

}

countdown(10);

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

于 2018-08-09T07:29:19.123 回答
0

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

只需修改 if 语句:

if (distance < WHATEVERYOUWANT) {
    alert("Message");
}
于 2018-08-09T06:56:48.067 回答