倒數計時器的數字跑不出來

小魚兒
ASP.NET 2.0(VB)

單純原始碼:它計時器會變成一開始觸發就會啟動了—
<head runat="server">
<title>表單</title>
<script type="text/JavaScript">
var secs = 180; //倒計時的秒數
for(var i=secs;i>=0;i--)
{
window.setTimeout("doUpdate(" + i + ")", (secs-i) * 1000);
}

function doUpdate(num)
{
document.getElementById("xTimeOut").innerHTML = num ;
if (num == 0){window.location='OW002.aspx'}
}
</script>
</head>
<body>
倒數計時:<p id="xTimeOut"></p>
</body>
=====================================
但我加了一個Button去觸發,結果計時器的數字沒有出現

<head runat="server">
<title>表單</title>
<script type="text/JavaScript">
function MyTimeout()
{
var secs = 180; //倒計時的秒數
for(var i=secs;i>=0;i--)
{
window.setTimeout("doUpdate(" + i + ")", (secs-i) * 1000);
}

function doUpdate(num)
{
document.getElementById("xTimeOut").innerHTML = num ;
if (num == 0){window.location='OW002.aspx'}
}
}
</script>
</head>
<body>
<asp:Button ID="BtnCheck" runat="server" Text="取得認證" OnClientClick="return MyTimeout();" />
倒數計時:<p id="xTimeOut"></p>
</body>

我做了一個 Button,當按下去時,它本身會寄出 Email 通知信,並且會出現相關資料和倒數計時器,
可是它數字不會顯示出來了?好像沒作用了,不知道哪邊出問題

最有價值解答

彩虹
對了,貼程式碼的時候,盡量使用「程式碼標籤」~
我使用 setInterval 並改寫你的寫法,希望對你有幫助
應該蠻淺顯易懂的
var timer = null; // 計時器
var secs = 180; // 倒計時的秒數
function MyTimeout() {
    timer = window.setInterval(doUpdate, 1000); // 每秒執行
}

function doUpdate() {
    document.getElementById("xTimeOut").innerHTML = secs ;
    if (secs == 0){
        window.clearInterval(timer); // 清除Interval
        window.location='OW002.aspx'
    }
    secs--;
}

小魚兒
感謝你的回覆,後來利用你的程式丟到專案處理,也是一樣的問題倒數計時器一樣不會出來。後來我把它簡單化,寫到一支小程式裡和我那一支一樣去測試,結果是都可以倒數計時的。
後來想說專案是有先後優先順序的程式在執行,我就推測是否為前後端程式的優先順序問題,結果猜對了,是優先順序的問題,難怪數字秀不出來。

參考網址如下—
https://blog.csdn.net/WuLex/article/details/89320751
回到頂部