Javascript 计时器通过提交问题立即打开和关闭,不允许学生尝试考试
请任何人帮帮忙,因为我的电子考试的倒计时停止了,我不知道到底发生了什么。。。计时器将读取零(hh:min:sec)并自动提交学生问题,而不允许他们回答问题,从而给他们(学生)评分为零。谢谢Javascript 计时器通过提交问题立即打开和关闭,不允许学生尝试考试,javascript,Javascript,请任何人帮帮忙,因为我的电子考试的倒计时停止了,我不知道到底发生了什么。。。计时器将读取零(hh:min:sec)并自动提交学生问题,而不允许他们回答问题,从而给他们(学生)评分为零。谢谢 function countDown() { sec--; if (sec == -01) { sec = 59; min = min - 1; if(min==-01) { min=59; hour=hour-1; }else
function countDown()
{
sec--;
if (sec == -01) {
sec = 59;
min = min - 1;
if(min==-01)
{
min=59;
hour=hour-1;
}else
{
hour=hour;
}
} else {
min = min;
}
if (sec<=9) { sec = "0" + sec; }
time = (hour<=9 ? "0" + hour : hour) + " : " + (min<=9 ? "0" + min : min) + " : " + sec + "";
if (document.getElementById) { document.getElementById('timer').innerHTML = time; }
SD=window.setTimeout("countDown();", 1000);
if (hour=='00'&& min == '00' && sec == '00') { sec = "00";min="00"; window.clearTimeout(SD); window.location=document.forms[0].action+"?fs=yes";}
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
countDown();
});
函数倒计时()
{
第二节;
如果(秒==-01){
秒=59;
min=min-1;
如果(最小==-01)
{
最小值=59;
小时=小时-1;
}否则
{
小时=小时;
}
}否则{
min=min;
}
如果(sec我尝试了您的代码,它返回sec、min和hour变量的ReferenceError
您可以尝试声明一个全局变量,其值位于sec、min和hour变量的顶部,如下面的代码所示,并查看它是否有效:
<html>
<body>
<div id="timer"></div>
<form action="http://stackoverflow.com/">
</form>
<script>
var sec = 0;
var min = 1;
var hour = 0;
function countDown()
{
sec--;
if (sec == -01) {
sec = 59;
min = min - 1;
if (min==-01) {
min=59;
hour=hour-1;
} else {
hour=hour;
}
} else {
min = min;
}
if (sec<=9) { sec = "0" + sec; }
time = (hour<=9 ? "0" + hour : hour) + " : " + (min<=9 ? "0" + min : min) + " : " + sec + "";
if (document.getElementById) { document.getElementById('timer').innerHTML = time; }
SD=window.setTimeout("countDown();", 1000);
if (hour=='00'&& min == '00' && sec == '00') { sec = "00";min="00"; window.clearTimeout(SD); window.location=document.forms[0].action+"?fs=yes";}
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
countDown();
});
</script>
</body>
</html>
var-sec=0;
var min=1;
var小时=0;
函数倒计时()
{
第二节;
如果(秒==-01){
秒=59;
min=min-1;
如果(最小==-01){
最小值=59;
小时=小时-1;
}否则{
小时=小时;
}
}否则{
min=min;
}
如果(sec我尝试了您的代码,它返回sec、min和hour变量的ReferenceError
您可以尝试声明一个全局变量,其值位于sec、min和hour变量的顶部,如下面的代码所示,并查看它是否有效:
<html>
<body>
<div id="timer"></div>
<form action="http://stackoverflow.com/">
</form>
<script>
var sec = 0;
var min = 1;
var hour = 0;
function countDown()
{
sec--;
if (sec == -01) {
sec = 59;
min = min - 1;
if (min==-01) {
min=59;
hour=hour-1;
} else {
hour=hour;
}
} else {
min = min;
}
if (sec<=9) { sec = "0" + sec; }
time = (hour<=9 ? "0" + hour : hour) + " : " + (min<=9 ? "0" + min : min) + " : " + sec + "";
if (document.getElementById) { document.getElementById('timer').innerHTML = time; }
SD=window.setTimeout("countDown();", 1000);
if (hour=='00'&& min == '00' && sec == '00') { sec = "00";min="00"; window.clearTimeout(SD); window.location=document.forms[0].action+"?fs=yes";}
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
countDown();
});
</script>
</body>
</html>
var-sec=0;
var min=1;
var小时=0;
函数倒计时()
{
第二节;
如果(秒==-01){
秒=59;
min=min-1;
如果(最小==-01){
最小值=59;
小时=小时-1;
}否则{
小时=小时;
}
}否则{
min=min;
}
如果(sec如果小时、分钟和秒变为0,则可以使用setInterval()重复秒倒计时,然后重定向到所需页面。请查看我编写的示例代码。希望我能有所帮助
<html>
<body>
<div id="timer"></div>
<form action="http://stackoverflow.com/"></form>
<script>
function countDown(){
//declare and init variables
var countDown_value = 60, //in seconds
stopFunction = undefined,
countFunction = undefined,
date = undefined,
remainingTime = undefined,
timer = undefined;
//main timer
timer = setInterval(function(){
//stopFunction and redirect
stopFunction = function(){
clearInterval(timer);
//activate below code to redirect
//window.location=document.forms[0].action+"?fs=yes";
document.getElementById('timer').innerHTML = "Done";
}
//countFunction
countFunction = function(){
date = new Date(null);
date.setSeconds(countDown_value);
remainingTime = date.toISOString().substr(11, 8);
document.getElementById('timer').innerHTML = remainingTime;
}
//check if countDown_value is 0
countDown_value-- ? countFunction() : stopFunction();
}, 1000); //1000 -> repeat every second
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
countDown();
});
</script>
</body>
</html>
函数倒计时(){
//声明和初始化变量
var倒计时\u值=60,//以秒为单位
stopFunction=未定义,
countFunction=未定义,
日期=未定义,
剩余时间=未定义,
定时器=未定义;
//主定时器
计时器=设置间隔(函数(){
//停止函数和重定向
stopFunction=函数(){
清除间隔(计时器);
//激活下面的代码以重定向
//window.location=document.forms[0]。操作+“?fs=yes”;
document.getElementById('timer').innerHTML=“完成”;
}
//计数函数
countFunction=函数(){
日期=新日期(空);
日期设置秒(倒计时值);
remainingTime=date.toISOString().substr(11,8);
document.getElementById('timer').innerHTML=remainingTime;
}
//检查倒计时值是否为0
倒计时_值--?countFunction():stopFunction();
},1000);/1000->每秒重复一次
}
函数addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!=“函数”){
window.onload=func;
}否则{
window.onload=函数(){
if(oldonload){
oldonload();
}
func();
}
}
}
addLoadEvent(函数(){
倒计时();
});
如果小时、分钟和秒变为0,您可以使用setInterval()重复秒倒计时,然后重定向到所需页面。请查看我编写的示例代码。希望我有所帮助
<html>
<body>
<div id="timer"></div>
<form action="http://stackoverflow.com/"></form>
<script>
function countDown(){
//declare and init variables
var countDown_value = 60, //in seconds
stopFunction = undefined,
countFunction = undefined,
date = undefined,
remainingTime = undefined,
timer = undefined;
//main timer
timer = setInterval(function(){
//stopFunction and redirect
stopFunction = function(){
clearInterval(timer);
//activate below code to redirect
//window.location=document.forms[0].action+"?fs=yes";
document.getElementById('timer').innerHTML = "Done";
}
//countFunction
countFunction = function(){
date = new Date(null);
date.setSeconds(countDown_value);
remainingTime = date.toISOString().substr(11, 8);
document.getElementById('timer').innerHTML = remainingTime;
}
//check if countDown_value is 0
countDown_value-- ? countFunction() : stopFunction();
}, 1000); //1000 -> repeat every second
}
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
addLoadEvent(function() {
countDown();
});
</script>
</body>
</html>
函数倒计时(){
//声明和初始化变量
var倒计时\u值=60,//以秒为单位
stopFunction=未定义,
countFunction=未定义,
日期=未定义,
剩余时间=未定义,
定时器=未定义;
//主定时器
计时器=设置间隔(函数(){
//停止函数和重定向
stopFunction=函数(){
清除间隔(计时器);
//激活下面的代码以重定向
//window.location=document.forms[0]。操作+“?fs=yes”;
document.getElementById('timer').innerHTML=“完成”;
}
//计数函数
countFunction=函数(){
日期=新日期(空);
日期设置秒(倒计时值);
remainingTime=date.toISOString().substr(11,8);
document.getElementById('timer').innerHTML=remainingTime;
}
//检查倒计时值是否为0
倒计时_值--?countFunction():stopFunction();
},1000);/1000->每秒重复一次
}
函数addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!=“函数”){
window.onload=func;
}否则{
window.onload=函数(){
if(oldonload){
oldonload();
}
func();
}
}
}
addLoadEvent(函数(){
倒计时();
});
非常感谢dee ronin,在声明变量后,它仍然不起作用!您是否尝试过调试倒计时函数,看看秒、分钟和小时变量的值是多少。是的,我尝试过,但它仍然不起作用,或者我复制了主脚本,以便您可以看看是否有解决方案?@Epasarello可以吗请看一看?请注意,脚本一直在工作,但只是停止了这么多dee ronin,在声明变量后,它仍然不工作!您尝试过调试吗