如何为Qualtrics上的整个块设置计时器,但仅将其应用于同一块

问题描述

我希望参与者有一个设定的时限,以在由@R_857_6404@分隔的区块中完成一组问题,并在时间到时自动前进到净区块。但是,我有几位参与者抱怨说,当计时器变为0时,它没有前进到下一个块,而是将他们移至下一部分(在本例中,研究结束)。如果他们在时间结束之前 完成调查,则似乎会发生这种情况(也就是说,如果他们在时间结束之前到达下一个程序段,则倒数计时会继续进行,并且当计时器变为0时它会自动前进即使已经完成了上一个代码块)。

我试图弄清楚是否可以调整我正在使用的代码,以使时间限制仅适用于我的问题所在的区块(其中的嵌入数据所在)。 / p>

这是代码

Qualtrics.SurveyEngine.addOnload(function()
{
    var headerCont = document.createElement("div");  
 headerCont.className = "header-cont";  
 headerCont.id = "header_container";  
 var header = document.createElement("div");  
 header.className = "header"  
 header.id = "header_1";  
 var timer = document.createElement("div");  
 timer.className = "timer";  
 timer.id = "timer_1";  
 timer.innerHTML = "Time Remaining: <span id='time'>00:10</span>";  
 headerCont.appendChild(header);  
 header.appendChild(timer);  
 document.body.insertBefore(headerCont,document.body.firstChild);
function startTimer(duration,display) {  
  var timer = duration,minutes,seconds;  
  var myTimer = setInterval(function() {  
   minutes = parseInt(timer / 60,10)  
   seconds = parseInt(timer % 60,10);  
   minutes = minutes < 10 ? "0" + minutes : minutes;  
   seconds = seconds < 10 ? "0" + seconds : seconds;  
   var text = ('innerText' in display)? 'innerText' : 'textContent';
   display[text] = minutes + ":" + seconds;  
   if (--timer < 0) {  
    clearInterval(myTimer);  
    timeOver();  
   }  
  },1000);  
 }  
 var timerSeconds = 10,display = document.querySelector('#time');  
 startTimer(timerSeconds,display);  
 var timeOver = function() {  
     document.getElementById("timer_1").innerHTML = "Time is up.";
 
Qualtrics.SurveyEngine.setEmbeddedData("blockTimeFlag","1");    
$('NextButton').click();
}



});

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)