2016-03-31 7 views
0

Я использую Jscript для включения нажатия клавиш в Qualtrics для ответа на вопрос.Использование 3 KEYSTROKES для ответа на опрос в Qualtrics

Он работает как с 2-х вариантов, как это предусмотрено в примере по Qualtrics: https://www.qualtrics.com/university/researchsuite/developer-tools/custom-programming/example-code-snippets/#ExampleJavaScript

Я добавил третий Keystroke вариант (нажмите Q), который не работает: как-то нажатие клавиши для д зарегистрирован, но при этом это не войти данных или перейти к следующему вопросу, как в случае нажатия j или k. См. Код ниже. Любой совет приветствуется - спасибо!

Qualtrics.SurveyEngine.addOnload(function() 
{ 
    /*Place Your Javascript Below This Line*/ 


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; 
    case 81: // 'q' was pressed 
     choiceID = 5; 
     break; 
    } 

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


}); 
}); 

ответ

1

Я не уверен, что именно не так. Несколько различных вещей это может быть:

1) Ваш код выше имеет дополнительный}); в конце. Однако Qualtrics не позволит вам сохранить это, поэтому я думаю, что это просто опечатка в вашем сообщении выше.

2) Если ваш идентификатор выбора неверен и у вас включен принудительный ответ, он не будет продвигаться, и вы получите сообщение об ошибке.

3) Если вы находитесь в режиме предварительного просмотра JFE, вам необходимо сначала сосредоточиться на форме до того, как будет нажата клавиша.

BTW, это не будет работать на мобильных устройствах.

Вот некоторые очистили код, который также исправляет проблему (3):

Qualtrics.SurveyEngine.addOnload(function() 
{ 
    $('Buttons').hide(); 
    if(window.location.pathname.match(/^\/jfe[0-9]?\/preview/)) { 
     $(this.questionId).select('input').first().focus(); 
    } 
    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; 
      case 81: // 'q' was pressed 
       choiceID = 5; 
       break; 
     } 

     if (choiceID) { 
      Event.stopObserving(document, 'keydown', keydownCallback); 
      that.setChoiceValue(choiceID, true); 
      $('NextButton').click(); 
     } 
    }); 
}); 
+0

Большое спасибо за большую помощь! Однако он все еще не разрешен. 1) Я вставил ваш синтаксис. 2) Я отключил принудительный ответ. 3) Я полностью запускаю опрос и не в режиме предварительного просмотра. Каким-то образом Qualtrics не записывает нажатие клавиши. –