2014-01-30 45 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

相關問題