2017-02-14 5 views
2

У меня есть код, указанный ниже. Это был код, рекомендованный командой поддержки Qualtrics, прежде чем они обновили свою систему. В этом коде вы удаляете следующую кнопку и позволяете участникам отвечать на нажатия клавиш, например. J или K.В Qualtrics, как сохранить ключевой ответ во встроенные данные?

Qualtrics.SurveyEngine.addOnload(function() 
{ 
this.hideNextButton(); 
this.hidePreviousButton(); 
var that = this; 

Event.observe(document, 'keydown', function keydownCallback(e) { 
var choiceID = null; 
    switch (e.keyCode) { 
    case 74: // 'j' was pressed 
    choiceID = 1; 
    break; 
    case 75: // 'k' was pressed 
    choiceID = 2; 
    break;   
} 

if (choiceID) { 
    Event.stopObserving(document, 'keydown', keydownCallback); 
    that.setChoiceValue(choiceID, true); 
    that.clickNextButton(); 
} 


}); 

}); 

Я также создал встроенные данные, называемые «choiceID» из раздела «Поток съемки». Я вижу эту новую колонку в моих окончательных результатах.

Я хочу отправить информацию ключа ответа (J как choiceID = 1 или K как choiceID = 2) к результатам в виде встроенных данных?

Я работаю над интегрированием приведенного ниже кода, который, похоже, не работает.

Qualtrics.SurveyEngine.setEmbeddedData("choiceID",choiceID); 
+0

Ваш код выглядит правильно. Строка setEmbeddedData должна находиться внутри if (choiceID). Введенное поле данных будет избыточным с ответом на вопрос. –

+0

Спасибо! на самом деле после очистки нескольких опечаток он работает сейчас. –

ответ

1

Вот рабочая версия.

Qualtrics.SurveyEngine.addOnload(function() 
{ 
this.hideNextButton(); 
this.hidePreviousButton(); 
var that = this; 

Event.observe(document, 'keydown', function keydownCallback(e) { 
var choiceID = null; 
switch (e.keyCode) { 
    case 74: // 'j' was pressed 
    choiceID = 1; 
    break; 
    case 75: // 'k' was pressed 
    choiceID = 2; 
    break;   
    } 

if (choiceID) {  
Qualtrics.SurveyEngine.setEmbeddedData("choiceID",choiceID); 
Event.stopObserving(document, 'keydown', keydownCallback); 
that.setChoiceValue(choiceID, true); 
that.clickNextButton(); 
} 

}); 

}); 
0

Я не думаю, что вам нужно реализовать внедренные данные, чтобы увидеть, в файле данных, результаты нажатия клавиши (см It used to be possible to setChoiceValue in Qualtrics. Is there a workaround that does not involve embedded data?). Для меня работает следующее.

Qualtrics.SurveyEngine.addOnload(function() 
{ 
this.hideNextButton(); 
this.hidePreviousButton(); 
var that = this; 
Event.observe(document, 'keydown', function keydownCallback(e) { 
    var choiceID = null; 
    switch (e.keyCode) { 
    case 74: // 'j' was pressed 
     choiceID = 1; 
     break; 
    case 75: // 'k' was pressed 
     choiceID = 2; 
     break; 
    } 
    if (choiceID) { 
    Event.stopObserving(document, 'keydown', keydownCallback); 
    that.setChoiceValue(choiceID, true); 
    that.clickNextButton(); 
    } 
}); 
});