js调用太早?请教~
本帖最后由 lq468167054 于 2013-04-10 11:23:26 编辑 以下代码为一段倒计时代码,sum可改为数字,能正常运行
<script type="text/javascript">
var sum=parseInt(document.getElementById("Seconds").value);
alert(sum);
var str;
function cDate(oSum)
{
var hour=Math.floor(oSum/3600);
var min=Math.floor(oSum/60);
if(min>60)
{min-=60;}
if(min<1)
{min==0;}
var sec=oSum%60;
str="时间为90分钟,距离结束还有"+hour+"小时"+min+"分"+sec+"秒";
//str=sec+"秒后自动跳转到主页";
return str;
}
function submitForm()
{
sum=sum-1;
cDate(sum);
document.getElementById("timer").innerHTML=str;//在页面上显示剩下的时间
if(sum==0)
{
clearInterval(newstimer);
document.getElementById("timer").innerHTML="结束";
}
}
var newstimer=setInterval("submitForm()",1000);//每隔一秒调用一次方法
</script>
两个控件,第一个获取Seconds,第二个显示
<input id="Seconds" type="hidden" runat="server" />
<label id="timer" style="color: Red; margin: 50px"></label>
现在这种情况,js过早调用,从而没有取到Seconds的值,Seconds从后台得到(HTML源码上已取到),
也试过这种方法
<body onload="setInterval('submitForm()',1000)">在加载body时加载,还是取不到,应如何做,求大虾帮忙 JavaScript
[解决办法]
var sum=parseInt(document.getElementById("Seconds").value);
应该是这个的问题吧,Seconds估计都没有加载到页面上,你可以把这段代码放到</body>后
就不能这样吗?
var sum=parseInt("<%= Session["Seconds"] %>");
[解决办法]
可以考虑这样
var sum
var newstimer
jQuery(document).ready(function () {
sum=parseInt(document.getElementById("Seconds").value);
newstimer=setInterval("submitForm()",1000);//每隔一秒调用一次方法
});