2017-08-15 9 views
0

前のブロックに対して指定された時間制限に達すると、次のブロックに自動的に進むための調査が必要です。現在、以下のスクリプトを使用してタイマーを表示していますが、時間が経過するとアクションを実行するスクリプトが必要です。どんな支援も大歓迎です。Qualtrics - 時間が経過したときに次のブロックに進む

タイミングの質問に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 COMMENTに基づいて回答EDITED

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

答えて

0

はブロックの前の調査の流れに埋め込まれたデータフィールドを初期化します。

blockTimeFlag = 0 

はに次の行を追加しますtimeOver関数:

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

しかし、これはあなたの質問のいずれも強制的な対応ではないことを意味します。

ご質問に表示ロジックを追加します。

if blockTimeFlag = 0 
+0

おかげで - 次の質問に進むために働く、しかし私は、時間がオーバーだけで、次のページでない場合、次のブロックに移動するために調査を希望しています(それがない限りブロックの最後の質問にあります)。 – Tim

+0

上記の編集の回答を参照 –

+0

ありがとうございます。回答が選択されるまで次のボタンを隠すことで、強制的に選択肢を回避する方法もあります。今度は、次のブロックのプロセスを繰り返して、タイマーを再起動します。現在、タイマーは次のブロックに表示され続けます。何かアドバイス? – Tim

関連する問題