【问题标题】:Qualtrics - progress to next block when time is upQualtrics - 时间到时进入下一个区块
【发布时间】:2017-08-15 23:32:34
【问题描述】:

当前一个区块达到指定的时间限制时,我需要进行调查以自动进入下一个区块。目前我正在使用下面的脚本来显示计时器,但需要脚本在时间过去后执行操作。非常感谢任何帮助。

时间问题中的Javascript。

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.";}



});

CSS

    .header-cont {  
   width:100%;  
   position:fixed;  
   top:0px;  
   z-index:1000;  
 }  
 .header {  
   height:75px;  
   background:#FFFFFF;  
   width:100%;  
   margin:0px auto;  
 }  
 .timer{   
   margin: auto;  
   text-align: center;  
   vertical-align: middle;        
   font-size: 200%;
    font-family: Arial;
 }

【问题讨论】:

    标签: javascript timer qualtrics


    【解决方案1】:

    根据评论编辑答案:

    在区块前初始化调查流程中的嵌入数据字段:

    blockTimeFlag = 0
    

    将以下行添加到 timeOver 函数中:

    Qualtrics.SurveyEngine.setEmbeddedData("blockTimeFlag", "1");    
    $('NextButton').click();
    

    但是,这意味着您的任何问题都不能被强制回答。

    为您的问题添加显示逻辑:

    if blockTimeFlag = 0
    

    【讨论】:

    • 谢谢 - 这可以进入下一个问题,但是我希望调查在时间结束时移动到下一个块,而不仅仅是下一页(除非他们在块中的最后一个问题上) .
    • 谢谢你的作品。通过隐藏下一个按钮直到选择答案,我还有一些强制选择的解决方法。现在我希望为下一个块重复该过程并重新启动计时器。目前,计时器继续出现在下一个区块上。有什么建议吗?
    • 您的脚本似乎将每页的计数重置为 10 秒。如果这是您想要的,您只需在下一个块之前将 blockTimeFlag 重置为零。如果你真的想为区块保持运行时间,这篇文章可能会有所帮助:stackoverflow.com/questions/36948956/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 2019-11-29
    • 2012-04-21
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    相关资源
    最近更新 更多