0 votes
in SoSci Survey (dt.) by s139607 (110 points)
edited by SoSci Survey

Hallo liebes SoSciSurvey-Team,

ich konnte mittels JavaScript und dank eurer Beschreibung unter https://www.soscisurvey.de/help/doku.php/de:create:dynamic
super gut eine "Wenn ja, ..."-Frage ein- bzw. ausblenden lassen. Möchte ich das jetzt jedoch bei mehreren Fragen auf einer Seite machen, dann funktioniert es nur bei der letzten. Bei den anderen löst sich die Funktion dann wieder auf.

Ich bin nun wirklich keine Programmiersprachenspezialistin, aber ich hoffe, ihr könnt mir helfen.
Hier ist einer der Codes, die ich verwenden habe:

<script type="text/javascript">
<!--
var optionA = document.getElementById("CO10_01a");
var optionB = document.getElementById("CO10_02a");
var frage = document.getElementById("CO11_qst");
function toogle() {
  if (optionA.checked) {
    frage.style.display = "";
  } else {
    frage.style.display = "none";
  }
}
SoSciTools.attachEvent(optionA, "click", toogle);
SoSciTools.attachEvent(optionB, "click", toogle);
toogle();
</script>

Vielen Dank im Voraus!

by s139607 (110 points)
Ich möchte gleich gern noch eine Frage hinzufügen: Kann ich auch zwei Filterfragen nach einer Frage ausklappen lassen?

Ich freue mich auf eine Antwort. :)

1 Answer

0 votes
by SoSci Survey (328k points)

Möchte ich das jetzt jedoch bei mehreren Fragen auf einer Seite machen, dann funktioniert es nur bei der letzten.

Generell möchte ich empfehlen, es mit Filtern nicht zu übertreiben. Das erschwert die Auswertung und macht es für die Teilnehmer u.U. weniger übersichtlich. Oftmals - und da muss man die Auswertungsstrategie rechtzeitig kennen - benötigt man die Daten überhaupt nicht, die man in einer aus-/eingeblendeten Frage abfragt.

Speziell für Ihr Problem: Es funktioniert nur mit einer Frage, weil die JavaScript-Variablen (optionA, optionB, frage und toogle) für die komplette Fragebogen-Seite gelten. Wenn Sie denselben Code also ein zweites Mal verwenden, werden Ihre Variablen vom ersten Mal überschrieben. Die einfachste Lösung besteht darin, beim zweiten Mal andere Variablennamen zu verwenden, z.B.:

<script type="text/javascript">
<!--
var option1A = document.getElementById("CO10_01a");
var option1B = document.getElementById("CO10_02a");
var frage1 = document.getElementById("CO11_qst");
function toogle1() {
  if (option1A.checked) {
    frage1.style.display = "";
  } else {
    frage1.style.display = "none";
  }
}
SoSciTools.attachEvent(option1A, "click", toogle1);
SoSciTools.attachEvent(option1B, "click", toogle1);
toogle1();
</script>

Ab vier oder fünf Fragen würde es aber u.U. sinnvoll, das in eine Funktion zu kapseln. Das können wir gerne in einer neuen Fragen hier im Online-Support erörtern, wenn Sie Interesse daran haben.

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

...