Hallo, ich habe Probleme mit JavaScript.
Ich möchte bei meinem Fragebogen je nach Antwort auf einer Skala ein offenes Textfeld direkt auf der gleichen Seite einfügen - daher kommt eine Filterfrage/ php-Code nicht in Frage.
Die anderen Fragen hier im Forum zum gleichen Thema helfen mir leider nicht, die Fehlermeldung bleibt.
Es gibt die Antwortmöglichkeiten Nein(1), gelegentlich(2), ja(3), weiß nicht (-1) und nicht beantwortet (-9). Die Frage muss allerdings beantwortet werden, daher spielt letzteres keine Rolle.
Pretest-Link ab Seite 14: https://www.soscisurvey.de/thxu/?act=CAKM7XZi06geF1v9PmM0t5Yx
Hier mein JavaScript (diesen habe ich als HTML Textbaustein angelegt und unter die Fragen gezogen):
<script type="text/javascript">
<!--
// LI08_13 ist die HTML-ID der Frage, Option "Nein"
var optionA = document.getElementById("LI08_131");
// Option "Gelegentlich"
var optionB = document.getElementById("LI08_132");
// Option "Ja"
var optionC = document.getElementById("LI08_133");
// Option "Weiß nicht"
var optionD = document.getElementById("LI08_13DK");
//HTML-ID der Texteingabe
var frage = document.getElementById("LI09_01_qst");
function toogle() {
// Die zwei Pipes (||) sind ein logisches "Oder"
// Die Bedingung prüft also: Ist Option B ausgewählt oder ist C ausgewählt?
if ((optionB.checked) || (optionC.checked)) {
// Wurde "Gelegentlich" oder "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", toogle);
SoSciTools.attachEvent(optionB, "click", toogle);
SoSciTools.attachEvent(optionC, "click", toogle);
SoSciTools.attachEvent(optionD, "click", toogle);
// Und jetzt gleich soll sie auch ausgeführt werden, damit die Anzeige zu Beginn korrekt ist
// (z.B. ausblenden der Texteingabe zu Beginn)
toogle();
// -->
</script>
Fehlermeldung: Uncaught SyntaxError: Unexpected token <