改成这样就ok了:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<input type="checkbox" id="ckb" onclick="Check()" NAME="ckb"/>
<input type="button" id="btn" NAME="btn"/>
</form>
</body>
</html>
<script language="javascript">
function Check()
{
if(document.getElementById("ckb").checked==true)
{
document.getElementById("btn").disabled=false;
}
else document.getElementById("btn").disabled=true;
}
Check(); window.onload=function()
{
Check();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<input type="checkbox" id="ckb" onclick="Check()" NAME="ckb"/>
<input type="button" id="btn" NAME="btn"/>
</form>
</body>
</html>
<script language="javascript">
function Check()
{
if(document.getElementById("ckb").checked==true)
{
document.getElementById("btn").disabled=false;
}
else document.getElementById("btn").disabled=true;
}
Check(); window.onload=function()
{
Check();
}
</script>
客户端加载页面的时候先运行代码,再加载控件,当执行到最后一段javascript的时候,执行
if(document.getElementById("ckb").checked==true)
{
document.getElementById("btn").disabled=false;
}
else document.getElementById("btn").disabled= true;
这个时候ckb,btn都还没有出来,即使我把这段代码放在了最后面,因为是先检测执行所有代码,所以永远执行else那部分,最开始以为正确,那是恰好最开始理应执行else,但不是因为判断了("ckb").checked==true这句到else,而是找不到ckb到else。
而window.onload事件是在加载了页面控件之后发生的,即发生window.onload事件时有了ckb,btn,于是就可以正常判断还是强类型语言好啊...真痛苦。才开始接触javascript