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

Ich habe keinerlei Erfahrung mit programmieren irgendwelcher Art. Habe es jetzt aber trotzdem geschafft, mit Javascript eine Folgefrage direkt auf der selben Seite einzublenden, abhängig von der angeklickten Antwort.
Jetzt stehe ich vor der Herausforderung, dass ich gerne mehrere Folgefragen gleichzeitig einblenden würde, wenn "Ja" ausgewählt wird. Den funktionieren Code einfach in mehreren Textbausteinen mit einer anderen Fragenkennung zu benutzen hat nicht geklappt. Dann wird nur eine Frage eingeblendet.

Wie muss ich den Code ändern, um quasi mehrere "Dann"s in der if-formel zu haben?

Danke schonmal:) Unten folgt noch mein bisheriger Code, den ich quasi 1zu1 aus der Anleitung übernommen habe.

<script type="text/javascript">
<!--
var optionA = document.getElementById("IN04_01a");  // JN01_01a ist die HTML-ID der Auswahloption "Ja"
var optionB = document.getElementById("IN04_02a");  // Option "nein"
var optionC = document.getElementById("IN04_R1a");  // Option "weiß nicht"
var frage = document.getElementById("IN09_qst");  // HTML-ID der Folgefrage

function toggle() {
  // Die zwei Pipes (||) sind ein logisches "Oder"
  // Die Bedingung prüft also: Ist Option A ausgewählt oder ist B ausgewählt?
  if (optionA.checked) {
    // Wurde "Ja" ausgewählt, dann wird die Frage angezeigt
    // Keine Angabe ("") verwendet die Standard-Einstellung (normal anzeigen)
    frage.style.display = "";
  } else {
    // Mit der Anzeigeoption "none" wird die Frage ausgeblendet
    frage.style.display = "none";
  }
}
 
// Die Funktion soll jedesmal ausgeführt werden, wenn eine der drei Optionen angeklickt wird
SoSciTools.attachEvent(optionA, "click", toggle);
SoSciTools.attachEvent(optionB, "click", toggle);
SoSciTools.attachEvent(optionC, "click", toggle);

 
// Und jetzt gleich soll sie auch ausgeführt werden, damit die Anzeige zu Beginn korrekt ist
// (z.B. ausblenden der Folgefrage zu Beginn)
toggle();
// -->
</script>

1 Answer

0 votes
by SoSci Survey (327k points)

>Ich habe keinerlei Erfahrung mit programmieren irgendwelcher Art. Habe es jetzt aber trotzdem geschafft, mit Javascript eine Folgefrage direkt auf der selben Seite einzublenden

Klasse. Das gilt als erste Erfahrung würde ich sagen :)

Wie muss ich den Code ändern, um quasi mehrere "Dann"s in der if-formel zu haben?

Das "dann" ist dieser Teil:

frage.style.display = "";

Das wiederum braucht die Information, um welche Frage es geht, aus dieser Zeile:

var frage = document.getElementById("IN09_qst");  // HTML-ID der Folgefrage

Sie müssen dem Code also erstmal erklären, dass Sie mehrere solche Fragen haben:

var frage1 = document.getElementById("IN09_qst");
var frage2 = document.getElementById("IN10_qst");
var frage3 = document.getElementById("IN11_qst");

Und dann weiter unten im Code:

  if (optionA.checked) {
    frage1.style.display = "";
    frage2.style.display = "";
    frage3.style.display = "";
  } else {
    frage1.style.display = "none";
    frage2.style.display = "none";
    frage3.style.display = "none";
  }

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

...