2017-06-12 4 views
0

Ich entwerfe eine Umfrage in Qualtrics mit rund 200 Artikeln. Für jeden Artikel wird eine Frage pro Seite angezeigt. Ich möchte, dass Fragen automatisch weitergeleitet werden, wenn sie auf eine Antwort klicken.Wie man Javascript in Qualtrics auf eine Reihe von Items anwendet?

kann ich sehen, wie Sie diese eine Frage zu einem Zeitpunkt here mit dem Code tun können:

Qualtrics.SurveyEngine.addOnload(function() 
{ 
    var that = this; 
    this.questionclick = function(event,element){ 
     if (element.type == 'radio') { 
      that.clickNextButton(); 
     } 
    } 
}); 

und das Verfahren beschreibt in the help files here. Im Grunde ist die Idee, dass Sie auf den Javascript-Button für eine Frage klicken und den Code einfügen.

Allerdings wäre dieser Prozess mühsam, 200 Mal zu wiederholen, und wenn ich das Javascript optimieren wollte, würde ich den Vorgang erneut 200 Mal wiederholen müssen.

Gibt es eine Möglichkeit, Java-Skript auf eine Reihe von Fragen in Qualtrics anzuwenden?

Antwort

0

Eine Option besteht darin, die Umfrage zu exportieren, die Exportdatei zu bearbeiten und die Umfrage erneut in Qualtrics zu importieren. Diese Methode ist im Qualtrics-Support nicht gut dokumentiert, funktioniert aber. This help file erläutert, wie eine Qualtrics-Umfrage als QSF-Datei exportiert und importiert wird (z. B. Qualics-Umfrageformatierungsdatei).

Die Hauptaufgabe besteht also darin, herauszufinden, wie der QSF bearbeitet werden kann, um das relevante Java-Script 200 Mal hinzuzufügen.

Die QSF-Datei ist im JSON-Format. Zuvor hatte ich davon gehört, aber ich musste nie das JSON-Format verwenden. Vielleicht ist dies typisch für Qualtrics Benutzer.

Standardmäßig befindet sich die QSF-Datei in einer seriellen Form (d. H. Sie befindet sich in einer Zeile). Ich fand this online editor hilfreich zum Formatieren und Analysieren der hierarchischen Struktur von QSF-Dateien.

Im Allgemeinen beginnt die Struktur von QSF-Dateien mit einer SurveyEntry, die allgemeine Umfrage Spezifikationen hat. Es hat dann eine Reihe von SurveyElements. Die ersten sechs Elemente in meinem Beispiel bezogen sich auf allgemeine Merkmale der Umfrage. Insbesondere repräsentieren die ersten Elemente die Blöcke und geben die Reihenfolge der Fragen in dem Block an. Nach den ersten sechs waren die Fragen. Jede Frage enthält eine Reihe von ID-Typ-Variablen gefolgt von Payload. Das Payload enthält die Kernattribut-Wert-Paare, die Features der Frage steuern.

Insbesondere das Javascript für eine Frage wird in der QuestionJS Variable beibehalten. Ich denke nicht, dass die Reihenfolge der Attribute in der Payload wichtig ist, aber ich bin mir nicht wirklich sicher.

Also ist die Aufgabe einfach, einen Code wie diesen innerhalb des Payload Attributs jeder Frage hinzuzufügen.

"QuestionJS":"Qualtrics.SurveyEngine.addOnload(function()\n{\n var that = this;\n this.questionclick = function(event,element){\n  if (element.type == 'radio') {\n   that.clickNextButton();\n  }\n }\n\n\n});", 

Vermutlich gibt es bessere Möglichkeiten der Bearbeitung json Skripte, die eine bessere Nutzung der Datenstruktur, aber es sollte möglich sein, eine einfache Entdeckung zu tun und ersetzen.

"QuestionType":"MC", 

"QuestionType":"MC","QuestionJS":"Qualtrics.SurveyEngine.addOnload(function()\n{\n var that = this;\n this.questionclick = function(event,element){\n  if (element.type == 'radio') {\n   that.clickNextButton();\n  }\n }\n\n\n});", 

Diese Idee könnte auch auf andere Gelegenheiten verlängert werden, wenn Sie ersetzen wollen: Zum Beispiel, wenn alle Ihre Fragen vom Typ Multiple-Choice sind, könnten Sie so etwas wie

Suche tun Hinzufügen eines bestimmten Attributs zu einer Reihe von Fragen.

1

Ein viel einfacherer Weg wäre, das JavaScript in die Kopf- oder Fußzeile zu setzen (Look & Feel/Advanced), dann würde es für jede Seite in der Umfrage gelten.

<script type="text/javascript"> 
Qualtrics.SurveyEngine.addOnload(function() { 
    // script logic goes here 
}); 
</script> 
+0

Danke. Dein Ansatz wäre großartig. Ich habe diesen Ansatz jedoch versucht und es hat nicht funktioniert. Das heißt, ich habe versucht, den Code, wie er in meiner Frage gezeigt ist (d. H. "Var that = this" usw.) in den Header einzufügen. Denken Sie, dass es angepasst werden muss, um im Header zu arbeiten? Das heißt, als allgemeines Skript über Fragen hinweg zu arbeiten? –

+0

Mit einigen anderen Skripts kann ich Header zu arbeiten, aber nur für die erste Frage nach diesem Problem: https://stackoverflow.com/questions/31754742/why-does-my-qualtrics-js-in-header-only- Anscheinend arbeiten-für-die-erste-Seite –

+0

Sie müssen Ihr Skript anpassen, weil 'dies' nicht mehr die Frage ist (zB this.questionId). Sie müssen das Skript die Frage finden lassen. Bei einem anderen Problem, unter Look & Feel, legen Sie den Seitenübergang auf "None" fest. Außerdem empfiehlt es sich, JavaScript in die Fußzeile zu stellen. –

Verwandte Themen