0 votes
in SoSci Survey (dt.) by s190583 (130 points)
edited by SoSci Survey

Hallo,
ich bin blutige Anfängerin bei HTML/PHP/JavaScript. Alles neu für mich. Bisher hat´s gut geklappt aber jetzt bei JavaScript komme ich nicht weiter und brauche bitte Hilfe!

Ich habe eine Ja/Nein Frage und würde gerne, dass bei auswählen der Antwort Ja, zwei weitere Fragen auf der selben Seite sofort angezeigt werden (Bei Nein sollen die Fragen nicht sichtbar sein). Mit Hilfe der Anleitung "Fragen bei Auswahl einer bestimmten Option sofort einblenden" habe ich bereits folgenden Code erstellt

<script type="text/javascript">
<!--
var optionA = document.getElementById("AL02_01a");  
var optionB = document.getElementById("AL02_02a"); 
var frage1 = document.getElementById("AL03_qst");
var frage2 = document.getElementById("AL04_qst");  
 
function toogle() {
  if (optionA.checked) {  
    frage1.style.display = "";
    frage2.style.display = "";

  } else {
    frage1.style.display = "none";
    frage2.style.display = "none";
  }
}
 
SoSciTools.attachEvent(optionA, "click", toogle);
SoSciTools.attachEvent(optionB, "click", toogle);
toogle();
</script>

Diesen habe ich unterhalb der Frage AL02 in einem HTML-Code Fenster eingefügt. Aber leider funktioniert er nicht. Mir werden die Fragen AL03 und AL04 beim testen von Anfang an angezeigt und nicht nur wenn ich auf Ja klicke.

Bei der Fehlersuche mit dem Entwicklertool werden mir folgende Fehler angezeigt:

SyntaxError: Unexpected token '<'
evaluateWithScopeExtension
(anonyme Funktion)
_wrapCall

Außerdem bin ich mir nicht sicher ob ich die richtigen HTML-IDs verwendet habe. Wo finde ich diese? unter Variablen wird mir z.B. Ja als 1 und nicht als 01s angezeigt. Liegt es evtl. daran, dass es nicht funktioniert?

Aus den Fragen anderer konnte ich mein Problem leider auch nicht lösen:(

Kann mir Bitte jemand helfen! Danke im Voraus!

1 Answer

0 votes
by SoSci Survey (327k points)

SyntaxError: Unexpected token '<'

Das bezieht sich eventuell darauf, dass Sie zu Beginn des Codes einen Kommentar starten (<!--) , diesen aber vor dem </script> nicht mit // --> beenden.

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

Das _wrapCall könnte aber auch bedeuten, dass sich der Fehler gar nicht auf Ihren Code bezieht.

Wenn es daran nicht liegt, posten Sie gerne mal einen Pretest-Link direkt (!) zur betroffenen Seite im Fragebogen.

by SoSci Survey (327k points)
Mir wird in der Fehlerkonsole in Firefox angezeigt:

Uncaught TypeError: frage1 is null
    toogle https://s2survey.net/BetreiberKRITIS...

Das bezieht sich auf folgenden Abschnitt:

  if (optionA.checked) {  
    frage1.style.display = "";
    frage2.style.display = "";

Die Variable frage1 wird hier definiert:

var frage1 = document.getElementById("AL03_qst");

Und da sehe ich auch schon das Problem, im Quelltext: Sie haben das Script über der Frage AL03 angefügt. Zu dem Zeitpunkt, wenn dieser JavaScript-Code läuft, gibt es das Element AL03_qst also noch gar nicht.

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

...