日期:2014-05-17  浏览次数:20379 次

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"] %>"); 

------解决方案-------------------