Hallo SoSci Survey Online Support,
ich möchte nach einer Auswahlfrage, nur wenn Option C ausgewählt wurde mittels Javascript direkt under der Auswahlfrage eine offene Texteingabe-Frage anzeigen lassen.
Dafür habe ich folgenden Code als HTML-Code als Text gespeichert:
<script type="text/javascript">
<!--
//OptionA = Ursprung; B=beibehalten C= neues
var optionA = document.getElementById("QF01_01a"); // Original
var optionB = document.getElementById("QF01_02a"); // Option "Beibehalten"
var optionC = document.getElementById("QF01_03a"); // Option "Neues"
var frage = document.getElementById("TA01"); // HTML-ID neues Port Frage
function toggle() {
if (optionC.value=3) {
// Wurde "Neues, anderes" gewä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";
}
}
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 Texteingabe zu Beginn)
toggle();
// -->
</script>
Im Fragebogen erstellen erscheint zuerst Frage GF01 - die Auswahlfrage (bei der nur bei Option C die Folgefrage auf gleicher Seite erscheinen soll), danach erscheint TA01 und darunter kommt der HTML-Code mit dem JS Text.
Die Fehlerkonsole von Firefox zeigt dies an:
Uncaught TypeError: frage is null
toggle https://www.soscisurvey.de/retailinv5/index.php?i=UVESYRWMZQJC&rnd=OKOC:732
<anonymous> https://www.soscisurvey.de/retailinv5/index.php?i=UVESYRWMZQJC&rnd=OKOC:743
Markiert ist folgende Zeile: frage.style.display = "";
Alle Fragen haben bei Prüfung ein leeres Quadrat (es gibt keine Antwortprüfung).
Als zweiten Versuch habe ich statt if (optionC.value=3) if (QF01=3) probiert; auch wieder mit frage null als Fehler. (optionC.checked) hatte ich am Anfang, dann aber verändert, weil ich eine Auswahlfrage und keine Mehrfachantwort habe.
Ich bin Ihnen sehr dankbar für die richtige Anzeige/ fürs Ausblenden des Javscriptcodes und der Folgefrage.
Vielen Dank im Voraus!