0 votes
ago in SoSci Survey (dt.) by s338943 (120 points)
edited ago by s338943

Ich habe nochmal eine ganze Weile rumprobiert, und ich bin auch schon etwas weiter gekommen, aber so ganz klappt es noch nicht. Die Anzahl der Trials wurde wie von mir gewünscht angepasst. Die Anzahl der Blöcke glaube ich auch, aber nach Block 7 hängt sich das Ganze auf. Hier der Code (die Anzahl der Trials ist nur zum Testen so gering, weil ich die später auch anpassen muss und direkt sehen wollte, ob es klappt):

<script type="text/javascript">
SoSciTools.attachEvent(window, "load", function() {
  SoSciTools.questionnaire.IA01.setBlocks([0,1,2,3,4,5,6,7,8,9,10]);
  SoSciTools.questionnaire.IA01.trialCount = [1,2,3,4,5,6,7,8,9,10,11];
  SoSciTools.questionnaire.IA01.setTrials([2,2,2,2,2,2,2,2,2,2,2]);
  SoSciTools.questionnaire.IA01.getBlockInfo = function (blockID) {
        // Init categories
        var categories = [[], []];
        
        // Create block content
        // 0=A, 1=B, 2=C, 3=D
        if (blockID === 0) {
            // Practice 1
            categories = [[0], [1]];
        } else if (blockID === 1) {
            // Practice 2
            categories = [[2], [3]];
        } else if (blockID === 2) {
            // Practice 3
            categories = [[0,2], [1,3]];
        } else if (blockID === 3) {
            // Test (block 4)
            categories = [[0,2], [1,3]];
        } else if (blockID === 4) {
            // Test (block 5)
            categories = [[0,2], [1,3]];
        } else if (blockID === 5) {
            // Test (block 6)
            categories = [[0,2], [1,3]];
        } else if (blockID === 6) {
            // Practice 7
            categories = [[1], [0]];
        } else if (blockID === 7) {
            // Practice 8
            categories = [[1,2], [0,3]];
        } else if (blockID === 8) {
            // Test (block 9)
            categories = [[1,2], [0,3]];
        } else if (blockID === 9) {
            // Test (block 10)
            categories = [[1,2], [0,3]];
        } else if (blockID === 10) {
            // Test (block 11)
            categories = [[1,2], [0,3]];
        } else alert("BlockID too large in getBlockInfo: " + blockID);

        return {
            categories: categories,
            trials: this.trialCount[blockID]

        };
    };
});
</script>

In den Entwicklertools unter "Elements" fand ich folgendes:

Meine Fragen wären jetzt:

  1. Kommt der Fehler evtl. daher, dass dort die Values für die unteren vier Zeilen fehlen?
  2. Falls das so ist, haben Sie eine Idee, wie ich die hinzufügen kann?
  3. Falls nicht, wo liegt dann das Problem und wie kann ich es beheben?

Vielen Dank im Voraus!

ago by SoSci Survey (353k points)
> In den Entwicklertools unter "Elements" fand ich folgendes

Was zeigt denn das Tab "Konsole" in den Entwicklertools? Wenn JavaScript Probleme verusacht, dann würde man es dort sehen.

Posten Sie gerne auch einen Pretest-Link direkt (!) zur Seite mit dem IAT und Code, dann werfe ich gerne einen Blick direkt in die Konsole.
ago by s338943 (120 points)
https://www.soscisurvey.de/tutorial491675/?act=hAk5mitvKUoxMWnHRLbb5ibi

Hier der Pretest-Link. Vielen Dank im Voraus für Ihre Mühe!

1 Answer

0 votes
ago by SoSci Survey (353k points)

Sie waren mit Ihrer Vermutung schon sehr nahe dran ... tatsächlich fehlte dem Script HTML-Inputs, in welchem es die Details zur den zusätzlichen Blöcken abspeichern konnte.

Nun könnte man natürlich einfach zusätzliche HTML-Inputs einfügen, aber diese werden dann nicht im Datensatz gespeichert. Wir haben den IAT deshalb nun so angepasst, dass Sie die fehlenden Felder noch manuell festlegen können.

Erstellen Sie bitte eine Frage "interne Variablen" mit 4 Variablen (für die 4 Extra-Blöcke). Diese Frage ziehen Sie bitte auf die Seite mit dem IAT (die Position auf der Seite ist irrelevant). Mal angenommen, die internen Variablen haben die Kennungen IA02_01 bis IA02_04, dann würden Sie in Ihrem JavaScript bitte noch folgendes ergänzen:

<script type="text/javascript">
SoSciTools.attachEvent(window, "load", function() {
  ...
  SoSciTools.questionnaire.IA01.blockInputs[7] = "IA02_01";
  SoSciTools.questionnaire.IA01.blockInputs[8] = "IA02_02";
  SoSciTools.questionnaire.IA01.blockInputs[9] = "IA02_03";
  SoSciTools.questionnaire.IA01.blockInputs[10] = "IA02_04";
});
</script>
ago by s338943 (120 points)
Vielen Dank für die ausführliche Antwort! Ich habe es nach Ihrer Anleitung probiert (eine Frage "interne Variablen" erstellt und 4 Variablen definiert, die Frage in den Fragebogen zum IAT gezogen und das Skript ergänzt) und irgendwie klappt es dennoch nicht. Ab dem 8. Durchgang werden im IAT irgendwie keine Stimuli mehr angezeigt und es erscheint nur noch eine leere Box und der IAT hängt sich auf.

Der Pretest-Link von oben sollte ja noch gültig sein, falls Sie den nochmal benötigen: https://www.soscisurvey.de/tutorial491675/?act=hAk5mitvKUoxMWnHRLbb5ibi

Daran, dass für die letzten 4 Blöcke noch keine Anweisungstexte definiert sind, kann es nicht liegen, oder? (PS: Das wäre dann, sobald der IAT grundsätzlich läuft, meine Anschlussfrage, wie man Erklärungstexte für die letzten 4 Blöcke hinzufügen kann).

Danke im Voraus!
ago by SoSci Survey (353k points)
Vermutlich hat Ihr Browser noch eine alte Version des IAT-Scripts im Cache. Könnten Sie wohl bitte die Seite mit dem IAT einmal neu laden und/oder den Browser-Cache leeren? Danke

Prüfen sie bitte auch, ob Sie die Frage IV02 (Sie haben im Code diese als Variablen angegeben) in die Seite gezogen haben.
ago by s338943 (120 points)
Super, das Leeren des Caches hat geholfen, danke!! Jetzt fehlen nur noch die Erklärungstexte für die letzten 4 Blöcke. Wie bekomme ich das denn hin, dass zwischen den Blöcken wieder Erklärungstexte stehen (so wie bei den ersten 7 Blöcken), inkl. der typischen Anweisung "Drücke bitte die Leertaste, um anzufangen"? Danke im Voraus!
ago by s338943 (120 points)
edited ago by s338943
Und noch eine zweite Frage, die ich vergessen hatte: Der IAT ist eigentlich so gedacht, dass wir in Block 4,5 und 6 sowie 9,10 und 11 jeweils unterschiedliche Bildstimuli ausspielen wollen (die sich alle in die Kategorien A und B einteilen lassen, aber eben drei "Subkategorien" bilden). Genauer:

In Block 4 und 9 jeweils Bilder von durch *Schneiden* verletzten vs. unverletzten Hautstellen
In Block 5 und 10 jeweils Bilder von durch *Schlagen* verletzten vs. unverletzten Hautstellen
In Block 6 und 11 jeweils Bilder von durch *Kratzen* verletzten vs. unverletzten Hautstellen


Wie stelle ich das denn an?

Notfalls wäre es für uns auch akzeptabel, die doch gemischt auszuspielen, aber dann hätten wir wieder das Problem, dass nur 8 Stimuli pro Kategorie zugelassen sind und wir dann 3*5 = 15 bräuchten, falls wir alle in einen Topf zusammenwürfeln müssen...
ago by SoSci Survey (353k points)
Haben Sie schon die Möglichkeit in Betracht gezogen, dass Sie nicht eine IAT-Frage verwenden, sondern mehrere? Sie könnten ja z.B. einen IAT "Schneiden" bauen und dann über die .setBlocks() Funktion einstellen, dass z.B. nur der Block 5 präsentiert werden soll.

Wenn Sie mehrere solcher Fragen auf unterschiedliche Seiten des Fragebogens legen, könnten Sie die Erklärungen wie gewohnt eintragen und hätten die Trennung der Stimuli.
ago by s338943 (120 points)
Manchmal liegen die besten Lösungen so nah und man sieht den Wald vor lauter Bäumen nicht mehr ... Vielen Dank für diese einfache, aber effektive Lösung, jetzt läuft endlich alles wunderbar!

Vielen Dank für Ihre intensive Unterstützung!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...