我正在开发一个在线测验模块,该模块会在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();
}
});
答案 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');
}
});