0 votes
in SoSci Survey (dt.) by s089792 (155 points)

Ich erstelle aktuell einen Fragebogen, bei dem auf jeder seite ein Bild bewertet werden soll. Unter den Bildern wird in einer Skala angezeigt, auf der verschiedene Emotionen angezeigt werden und gefragt wird "wie sicher" man sich ist, dass die ausgewählte Emotion zutrifft. Dabei soll aber nur EINE Emotion beantwortet werden. (Vorangegangene Frage für bessere Erklärung: https://support.soscisurvey.de/?qa=19720/automatisch-weiter-nach-beantwortung-eines-items-einer-skala.)

In der Vorangegangenen Frage wurden mir empfohlen, Event Handler in den Fragebogen einzufügen. Das habe ich mit folgendem Code für die zwei hier gezeigten Items der Skala vorgenommen. Nun wird man zwar automatisch auf die nächste Seite weitergeleitet, aber erst, wenn man ALLE Items beantwortet hat. Wie müsste ich das Skript ändern, um nach beantwortung EINES Items auf die nächste Seite geleitet zu werden?

<script type="text/javascript">
<!--
var optionA = document.getElementById("Q001_01a"); //
var optionB = document.getElementById("Q001_01b"); //
var optionC = document.getElementById("Q001_01c"); //
var optionD = document.getElementById("Q001_01d"); //
var optionE = document.getElementById("Q001_01e"); //
var optionF = document.getElementById("Q001_01f"); //
var optionG = document.getElementById("Q001_01g"); //
var optionH = document.getElementById("Q002_01a"); //
var optionI = document.getElementById("Q002_01b"); //
var optionJ = document.getElementById("Q002_01c"); //
var optionK = document.getElementById("Q002_01d"); //
var optionL = document.getElementById("Q002_01e"); //
var optionM = document.getElementById("Q002_01f"); //
var optionN = document.getElementById("Q002_01g"); //
var frage = document.getElementById("goToPage(’next’)"); 

function toogle() {
if optionA.checked) | (optionB.checked || (optionC.checked)) || (optionD.checked)) || (optionE.checked)) || (optionF.checked)) || (optionG.checked)) || (optionH.checked)) || (optionI.checked)) || (optionJ.checked)) || (optionK.checked)) || (optionL.checked)) || (optionM.checked)) || (optionN.checked)) {
// Wenn irgendeine Antwort ausgewählt, dann...
frage.style.display = "";
}
}

toogle();
// -->
</script>

1 Answer

+1 vote
by SoSci Survey (328k points)

Eigentlich sind es nur ein paar Kleinkeiten, warum Ihr Code nicht funktioniert - aber wir haben uns (auch für künftige Anwendungen) die JavaScript-Bibliothek für die Skala nochmal vorgenommen. Damit lässt sich der gewünschte Ergebnis noch mit deutlich weniger JavaScript-Code erreichen:

<script type="text/javascript">
window.addEventListener("load", function() {
    SoSciTools.questionnaire.Q002.addEventListener("click", function(evt) {
        SoSciTools.submitPage();
    });
});
</script>
by s089792 (155 points)
Dass dieses Script wesentlich kürzer ist, hilft tatsächlich für die Zukunft weiter! Allerdings müssen immer noch ALLE Items der Skala  beantwortet werden, um das automatische Weiterleiten auszulösen. Ich benötige allerdings eine Weiterleitung nach der ERSTEN Beantwortung IRGENDEINES Items der Skala. (Es soll nur EINE Emotion von den Teilnehmenden ausgewählt werden und gleichzeitig, wie sicher man sich mit dieser Auswahl ist. ["Ich bin mir sehr sicher, dass die Person fröhlich schaut."]-Soll mit einem Klick erfolgen. Danach soll sofort die nächste Fragebogenseite erscheinen. Ist das realisierbar?
by SoSci Survey (328k points)
>  Ich benötige allerdings eine Weiterleitung nach der ERSTEN Beantwortung IRGENDEINES Items der Skala.

Genau das sollte mit dem obigen Code passieren. Posten Sie gerne einen Pretest-Link direkt (!) zur betroffenen Fragebogen-Seite, dann sehe ich mir gerne an, warum das ggf... noch nicht funktioniert.

Denken Sie bitte daran, dass Sie für jede Seite eine eigene Kopie der Skalen-Frage brauchen.

Und stellen Sie bitte sicher, dass in der Skalenfrage unter "Weitere Einstellungen" -> "Skala" -> "Automatisches Weiter" die Variante "Nein" eingestellt ist.
by s089792 (155 points)
Tatsächlich war die Einstellung "Automatisch Weiter" aktiv. Ich habe es jetzt auf "Nein" umgestellt. Trotzdem erfolgt keine automatische Weiterleitung (weder nach der Beantwortung eines Items noch (wie vorher) nach der Beantwortung aller Items). Hier der Pretest Link:
https://www.soscisurvey.de/MaskEmotion1/?act=R9UxaMljrskCunG5hazHUg5m
by SoSci Survey (328k points)
Naja, das JavaScript wird ja auch noch als Text unten auf der Seite angezeigt - dann kann er nicht funktionieren.

Bitte stellen Sie im Textbaustein als Darstellungsmodus "HTML-Code" ein - und dann kopieren Sie den Code nochmal neu in das Feld.
by s089792 (155 points)
Ah, super, ich hatte bei der Version die Umwandlung in HTML-Code vergessen. Vielen Dank!

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

...