2017-11-15 9 views
0
私の調査で

複数のページ区切りを持つブロックのグローバルタイマーを使用してQualtricsで自動的に回答を移動する方法を教えてください。

.header-cont { 
 
    width:100%; 
 
    position:fixed; 
 
    top:0px; 
 
    z-index:1000; 
 
} 
 
.header { 
 
    height:auto; 
 
    background:#FFFFFF; 
 
    width:100%; 
 
    top: 0px; 
 
\t margin:0px auto; 
 
    position:fixed; 
 
\t z-index:1000; 
 
} 
 
.timer{ 
 
    width: 500px; 
 
    margin: auto; 
 
    text-align: center; 
 
    vertical-align: middle; 
 
    line-height: 50px;  
 
    font-size: 28px; 
 
}
私はブロックで改ページで区切られた複数の質問を持っているが、私は、全体の質問に同じタイマーを使用するにもかかわらず質問意志別のページで表示されます。カウントできるサンプルコードがありますが、タイマーが終了しても何も起こりません。結果は自動提出されません。タイマーが上がった後、私はいくつかの生物学的な質問に答えるためにユーザーをリダイレクトしたい。

Qualtrics.SurveyEngine.addOnload(function() 
 
{ 
 

 
var header = document.createElement("div"); 
 
header.className = "header" 
 
header.id = "header_1"; 
 
\t 
 
var timer = document.createElement("div"); 
 
timer.className = "timer"; 
 
timer.id = "timer_1"; 
 
timer.innerHTML = "Time Remaining: <span id='time'>02:00</span>"; 
 
\t 
 
header.appendChild(timer); 
 
document.body.insertBefore(header, document.body.firstChild); 
 
\t 
 
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 = 120, 
 
display = document.querySelector('#time'); 
 
startTimer(timerSeconds, display); 
 
var timeOver = function() { 
 
    document.getElementById("timer_1").innerHTML = "Time is up."; 
 
    x = 1; 
 
    var bgColor = setInterval(change, 1000); 
 
} 
 

 
});

+0

タイマーをブラウザのキャッシュに保存するには、 'localHost'を使用する必要があります。 –

答えて

1

、あなたは、埋め込まれたデータ変数を使用して次のページへの残り時間を渡すことができ、かつ一度時間がアップしているように、あなたは質問の表示ロジックに埋め込まれたデータの変数を使用することができます残りの質問は表示されません。次のボタンをクリックすると、次のページに進むことができます。あなたの調査の流れで

は、質問ブロックの前に埋め込まれたデータ変数のtimeRemainingを初期化します。

timeRemaining = 120 

次に、あなたのコードtimerSecondsにtimeRemainingに設定されます:あなたのstartTimer機能で

var timerSeconds = parseInt("${e://Field/timeRemaining}"); 

を、timeRemainingを更新:

Qualtrics.SurveyEngine.setEmbeddedData('timeRemaining', timer); 

タイムオーバ機能は、次のページに移動:最初以外のすべての質問に

$('NextButton').click(); 

あなたの表示ロジック:

if timeRemaining > 0 

は、ブロック内の各ページの最初の質問にスクリプトをコピーします。

関連する問題