Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Javascript计时器在每次回发时初始化_C#_Javascript_Jquery_Asp.net_Timer - Fatal编程技术网

C# Javascript计时器在每次回发时初始化

C# Javascript计时器在每次回发时初始化,c#,javascript,jquery,asp.net,timer,C#,Javascript,Jquery,Asp.net,Timer,这是我在aspx页面上的脚本,用于在页面加载时初始化计时器 <script type="text/javascript"> function display() { var hours = document.getElementById('<%=HidH.ClientID %>'); var minutes = document.getElementById('<%=HidM.ClientID %

这是我在aspx页面上的脚本,用于在页面加载时初始化计时器

<script type="text/javascript">

        function display() {

            var hours = document.getElementById('<%=HidH.ClientID %>');

            var minutes = document.getElementById('<%=HidM.ClientID %>');

            var seconds = document.getElementById('<%=HidS.ClientID %>');



            if (hours.value == 00 && minutes.value == 00 && seconds.value == 00) {

                PageMethods.ReturnQuestionId(1);

                alert("Time Given For this Test is Over");


                var newwindow = window.location.replace("frmResultCheck.aspx");

                if (window.focus) { newwindow.focus() }
                return false;

            }
            if (minutes.value < 10) {
                minutes.value = minutes.value;
            }
            if (seconds.value <= 00) {
                if ((hours.value == 00) && (minutes.value == 00))
                    seconds.value = 00;
                else {
                    seconds.value = 60;
                    minutes.value -= 01;
                }
            }

            if (minutes.value <= 00) {
                if ((hours.value < 00) && (seconds.value < 00)) {
                    hours.value = minutes.value = seconds.value = 00;
                }
                else {
                    if ((hours.value == 00) && (seconds.value == 00))
                        hours.value = seconds.value = 00;
                    if ((hours.value > 00) && (minutes.value < 00)) {
                        minutes.value = 59;
                        hours.value -= 01;
                    }
                }
            }
            if ((minutes.value <= -01) || (hours.value <= -01)) {
                if (hours.value <= -01) {
                    minutes.value = 00;
                    hours.value += 01;
                }
                else

                    minutes.value -= 01;
                seconds.value = 00;
                minutes.value += 01;
            }
            else
                if (seconds.value > 00)
                    seconds.value -= 01;

            if (hours.value.length < 2) {
                hours.value = "0" + hours.value;

            }
            if (minutes.value.length < 2) {
                minutes.value = "0" + minutes.value;

            }
            if (seconds.value.length < 2) {
                seconds.value = "0" + seconds.value;

            }

            document.getElementById('counter').value = hours.value + ":" + minutes.value +


 ":" + seconds.value;

            setTimeout("display()", 1000);



            if (document.getElementById('btnSubmit').onclick == true)



                document.getElementById('counter').value = "";
        }

        display();
    </script>

函数显示(){
var hours=document.getElementById(“”);
var minutes=document.getElementById(“”);
var seconds=document.getElementById(“”);
如果(小时.value==00&&minutes.value==00&&seconds.value==00){
PageMethods.ReturnQuestionId(1);
警报(“此测试的时间已过”);
var newwindow=window.location.replace(“frmResultCheck.aspx”);
if(window.focus){newwindow.focus()}
返回false;
}
如果(分钟值<10){
minutes.value=minutes.value;
}
如果(seconds.value在您的C#Page_加载代码中,请在初始化值之前检查它是否回发。仅当它是第一次加载时初始化(即
!IsPostBack
)。
像这样:

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        // Your initializing code here
    }
}

你能解释问题中的逻辑吗,你已经提供了很好的代码。一点逻辑解释将帮助我们更好地理解。好的,上面的代码负责一个页面中的倒计时计时器。当我点击页面上的下一步按钮移动到一个新位置时,javascript计时器初始化为相同的t我单击“下一步”按钮的时间。假设我单击“下一步”按钮时的时间是01:09:55,之后加载页面,但当加载新页面时,计时器返回到01:09:55,而不是加载页面所用的时间。计时器应该是01:09:42或类似的时间。您可以在此处使用会话,将跟踪器值输入为hidden字段,并在加载时读取该值DOM@Rohit您是否对Ajax开放。通常情况下,回发将刷新整个页面。由于页面再次加载,javascript变量无法维护。您可以在Ajax中单独提交答案选择。这样,您可以保留JS变量值。您能否更具体地说明上述内容注释..预期结果和当前结果是什么?是否有任何错误?在页面加载上,时间是01:09:52,但当我单击导致回发的“下一步”按钮时,时间再次初始化为01:09:52,而不是按递减顺序。javascript表达式
if(document.getElementById('btnSubmit')).onclick==true)
不正确。
onclick
属性永远不会返回
布尔值
。它将返回
函数
null
。您可以使用
if(document.getElementById('btnSubmit').onclick)
来实现这一点。那么,应该使用什么语法来使计时器工作呢?编码器没有成功…:-(
protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
        // Your initializing code here
    }
}