2014-01-30 58 views
0

这里我正在测验门户网站上工作。 问题以模块形式设置,即一个模块包含5个问题,其中第一个是文本类型,第五个是图像类型。setTimeout方法不能与ajax函数一起工作

当用户使用register.php进行注册时,他将被带到他登录的index.php。

登录后,他显示一个开始按钮。在按下开始按钮时,调用qstartfunc(),使用xmlHTTPrequest打开qstart.php文件,该文件作为响应返回html格式的问题。

的回应如下

Response=<script> 
     setTimeout(qtime,30); 
    </script> 
    <div> 
    <form name='question' action='#'> 
     <p>Question #8: Since independence, both development and non-development expenditures have increased; the increase in the former being a little more than in the other. Non-development expenditure involves<br /> 

I.  interest payments<br /> 

II. subsidies<br /> 

III. defence<br /> 

IV. irrigation 

? 
     </p> 
     <input id='a' type='radio' name='ansa' value='optiona' /> I, II<br /> 
     <input id='b' type='radio' name='ansa' value='optionb' /> I<br /> 
     <input id='c' type='radio' name='ansa' value='optionc' /> I, II, III<br /> 
     <input id='d' type='radio' name='ansa' value='optiond' /> II, III, IV<br /> 
     <button onclick='qreturnfunc();return false;'>Submit</button> 
    </form> 
    </div>" 

现在你看我打电话的setTimeout的方法QTIME()函数与一些时间INT这种情况下30. QTIME()方法调用qreturnfunc(),它反馈回来的问题不同,但格式相同。

但setTimeout方法不起作用。这段代码意图限制用户这个时间,否则它会自动提交。

除了setTimeout方法外,其他所有工作都正常。

所以,如果你们发现任何错误,请帮助我。任何批评,甚至欢迎..

在此先感谢。

的链接完整的包是

https://drive.google.com/file/d/0B6KPYbSD1sxDU0k0QkU2YWVISWc/edit?usp=sharing

回答

0

你还没有实际说的是什么,虽然发生的事情。

我的猜测虽然是你的计时器运行得很快,因为JS中的计时器以毫秒为单位递增。所以在Javascript中30秒是30,000毫秒。

编辑:你在做什么调试?该函数是否被调用?你在检查错误吗?这听起来像你不知道你的代码是或不在做什么,这可以通过简单地添加日志记录并查看你的代码得到多少来获得。

+0

它应该在30毫秒后调用函数qtime()(假设)并改变问题,但即使在那个时间之后也没有问题的改变。 但按提交按钮时,问题确实会改变。 – user7694

+0

没错。但是你是否正在记录查看该函数是否被调用?你在控制台检查错误吗?你在做什么来跟踪你的代码的执行情况? – thescientist

0

你应该使用这样的:

<script> 
$.ready(function(){ 
     setTimeout(qtime,30); 
}); 
</script> 

或者

<script> 
    window.load = function(){ 
      setTimeout(qtime,30); 
    }; 
</script> 

除非你将没有办法,以确保对正在执行脚本的时候。

+0

thanx为您提供帮助,但即使这样也行不通。 – user7694

相关问题