Javascript 倒计时自动触发提交按钮
我正在做一个关于PHP的在线考试项目 我想让倒计时计时器在超时时自动触发提交按钮 如果可能,如果计时器达到1分钟标记,则在计时器下方显示另一个div标记Javascript 倒计时自动触发提交按钮,javascript,redirect,time,timer,countdowntimer,Javascript,Redirect,Time,Timer,Countdowntimer,我正在做一个关于PHP的在线考试项目 我想让倒计时计时器在超时时自动触发提交按钮 如果可能,如果计时器达到1分钟标记,则在计时器下方显示另一个div标记 功能启动定时器(持续时间,显示){ var定时器=持续时间, 分,秒; setInterval(函数(){ 分钟=parseInt(计时器/60,10) 秒=parseInt(计时器%60,10); 分钟=分钟
功能启动定时器(持续时间,显示){
var定时器=持续时间,
分,秒;
setInterval(函数(){
分钟=parseInt(计时器/60,10)
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
如果(--定时器<0){
定时器=持续时间;
}
}, 1000);
}
window.onload=函数(){
var examTime=60*5,
display=document.querySelector(“#time”);
开始计时器(examTime,显示);
};代码>
#timediv{
背景色:#003300;
颜色:#ffffff;
字体大小:20px;
文本对齐:居中;
}
考试在05:00分钟后结束!
在setInterval
回调中,检查时间是否已达到0:
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function() {
minutes = parseInt(timer / 60, 10)
seconds = parseInt(timer % 60, 10);
if (minutes === 0 && seconds === 0) {
document.querySelector('form').submit()
}
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
timer = duration;
}
}, 1000);
}'
您可以将此逻辑添加到startTimer
函数中:
/。。。
如果(--定时器<0){
document.getElementById(“theForm”).submit();
// ...
}
// ...
您必须将
上的id
属性设置为表单
我希望以下内容相当容易理解。如果可能的话,如果计时器达到1分钟标记,则在计时器下方显示另一个。
因此我将其解释为当考试还有1分钟时,向用户“提供警告或某种形式”
当倒计时计时器达到其指定时间时,将调用提交表单的命令-该方法仅为form.submit()
,其中form
是对表单的引用,以任何适合的方式派生
仅供参考-计时器最初已修改为略多于1分钟,以便在无需等待的情况下即可看到效果,并且等待和等待
另外-在这里的代码中,我使用了警报来表示时间不多了。。。最好在屏幕上显示一条消息
功能启动定时器(持续时间,显示){
var定时器=持续时间;
分钟,秒;
var警告=60;
var-ok=false;
var form=document.forms.exam;
var t=setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
如果(计时器)在计时器下方显示另一个计时器,如果计时器达到1分钟标记,这意味着什么?我认为可以使用同一个计时器指示剩余1分钟的时间?!问题出在哪里?我没有看到计时器函数中对表单的引用或提交表单的尝试-这是问题吗?我没有看到任何“php”.那么,这真的是一个与php相关的问题吗?如果是,如何解决?
if (minutes === 1 && seconds === 0) {
// Display an alert or another timer
}