2014-12-01 82 views
0

我做了倒数计时器。当时间到了时它会发出警报/弹出。 我写这样的代码:定时器给时间结束提醒

function cd(){ 
now = new Date(); 
diff = end - now; 
diff = new Date(diff); 
var sec = diff.getSeconds(); 
var min = diff.getMinutes(); 

if(now >= end) 
    { 
    clearTimeout(timerID); 

    window.alert("Time is up. Press OK to continue."); 
    document.forms[0].submit(); 
    } 
    else 
    { 
    document.getElementById("cdtime").innerHTML = min + ":" + sec; 
    } 
    timerID = setTimeout("cd()", 10); 
} 
window.onload = cd 

这是自动提交计时器。当时间到了,它会提交表格。问题是,当我做window.alert它会保持警觉,即使我点击“ok”。我点击确定后应该怎么做才会重定向到document.forms[0].submit()

+0

你知道10是毫秒而不是秒,对吧? – briosheje 2014-12-01 17:49:07

+0

是的,我知道,为什么? – Lisa 2014-12-01 17:53:53

+0

你可以发布整个“cd”功能吗? – 2014-12-01 17:56:30

回答

0

线timerID = setTimeout("cd()", 10);在你的代码没有执行。它应该在else块内。也没有必要清除超时

(如果你使用setInterval()函数代替setTimeout()你将必须清除间隔)...

试试这个。

function cd(){ 
    now = new Date(); 
    diff = end - now; 
    diff = new Date(diff); 
    var sec = diff.getSeconds(); 
    var min = diff.getMinutes(); 

    if(now >= end) 
     { 
     window.alert("Time is up. Press OK to continue."); 
     document.forms[0].submit(); 
     } 
    else 
     { 
     document.getElementById("cdtime").innerHTML = min + ":" + sec; 
     setTimeout("cd()", 10); 
     } 
    } 
window.onload = cd; 
+0

感谢bro..it给了我更好的使用timer.really视图,甚至很多window.alert不显示。 :) – Lisa 2014-12-01 18:15:13

0

试试这个:

if (window.confirm(‘put stuff here’)) { 
window.location.href=‘put link here’; 
} 
else { 
var x = ""; 
} 
+0

我不能做window.location,因为我想自动提交表格 – Lisa 2014-12-01 17:56:57

0

你的计时器触发每10个毫秒,因此警报实际上是令人耳目一新,

setTimeout keeps firing

阅读,给你一个更好的主意,希望帮助

+0

现在,我看到你的函数CD()你应该有变量名为 var now = new Date(); 等等 – dav3ydark007 2014-12-01 18:10:13