2017-11-15 13 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

당신은 시간이 포함 된 데이터 변수를 사용하여 다음에 한 페이지에서 나머지 전달할 수 있습니다, 당신은 질문 표시 로직에 포함 된 데이터 변수를 수 있도록 사용할 수있는 시간이 다되면, 나머지 질문은 표시하지 않습니다. 다음 버튼을 클릭하면 다음 페이지로 넘어갈 수 있습니다. 귀하가 startTimer 기능, 업데이트 timeRemaining으로에서

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

:

코드의 timerSeconds에서 다음
timeRemaining = 120 

가 timeRemaining으로 설정됩니다 : 설문 조사 흐름에서

가 포함 된 데이터 질문 블록 전에 변수 timeRemaining으로 초기화 :

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

타임 오버 기능은 다음 페이지로 이동 :

$('NextButton').click(); 

귀하의 표시 논리를 첫 번째 제외한 모든 질문에 :

if timeRemaining > 0 

이 블록의 각 페이지의 첫 번째 질문에 대한 스크립트를 복사합니다.