具體頁面代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>按鈕倒計時</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
<script type="text/javascript" language="javascript">
var secs = 10;
var wait = secs * 1000;
var agreetext="同 意";
document.form1.Button1.value = agreetext+"(" + secs + ") ";
document.form1.Button1.disabled = true;
for(i = 1; i <= secs; i++) {
window.setTimeout("update(" + i + ")", i * 1000);
}
window.setTimeout("timer()", wait);
function update(num, value) {
if(num == (wait/1000)) {
document.form1.Button1.value = agreetext;
} else {
printnr = (wait / 1000)-num;
document.form1.Button1.value = agreetext+"(" + printnr + ") ";
}
}
function timer() {
document.form1.Button1.disabled = false;
document.form1.Button1.value = agreetext;
}
</script>
</form>
</body>
</html>
注意以下兩點:
1、setTimeout(運算式,延時時間)
在執行時,是在載入後延遲指定時間後,去執行一次運算式。
2、javascript必須放在<form>與</form>內。
3、在<form>與</form>內的JAVA指令碼才能使用“document.form1.服務控制項名”來引用頁面中的服務類型的控制項。如果將JAVA指令碼放在<head>節內是不能使用這種形式來引用控制項的。