2016-03-31 3 views
0

J'utilise Jscript pour permettre à Keystrokes dans Qualtrics de répondre à une question.Utilisation de 3 touches KEYSTROKES pour répondre à un sondage dans Qualtrics

Il fonctionne comme avec 2 options prévues dans l'exemple par Qualtrics: https://www.qualtrics.com/university/researchsuite/developer-tools/custom-programming/example-code-snippets/#ExampleJavaScript

J'ai ajouté une troisième option Keystroke (appuyez sur q) qui ne fonctionne pas: en quelque sorte la combinaison de touches pour q est enregistré, mais ne ne peuvent pénétrer dans les données ni passer à la question suivante comme c'est le cas en appuyant sur j ou k. Voir le code ci-dessous. Tout conseil apprécié - merci!

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(); 
    } 
}); 


}); 
}); 

Répondre

1

Je ne sais pas exactement ce qui ne va pas. Quelques choses différentes, il pourrait être:

1) Votre code ci-dessus a un supplément}); à la fin. Cependant, Qualtrics ne vous laisserait pas enregistrer cela, donc je pense que c'est juste une faute de frappe dans votre message ci-dessus.

2) Si votre choixID est erroné et que vous avez activé la réponse forcée, il ne progressera pas et vous recevrez un message d'erreur.

3) Si vous êtes en mode de prévisualisation JFE, vous devez d'abord vous concentrer sur le formulaire avant d'appuyer sur une touche.

BTW, cela ne fonctionnera pas sur les appareils mobiles.

Voici un code nettoyé qui fixe également question (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

Un grand merci pour la grande aide! Cependant, ce n'est toujours pas résolu. 1) J'ai inséré votre syntaxe. 2) J'ai désactivé la réponse forcée. 3) Je cours entièrement le sondage et ne suis pas en mode aperçu. D'une manière ou d'une autre, Qualtrics n'enregistre pas la frappe. –