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

Hallo!

Ich komme leider nicht mehr weiter:
Ich möchte, dass bei Auswahl der Antwort "Ja" ("VT0x_01a) eine Folgefrage auf der selben Fragebogenseite eingeblendet wird. Das Ganze soll bei bei vier Auswahlfragen (VT02; VT04; VT06; VT08) passieren, auf die optional die Fragen VT03, VT05, VT07 bzw. VT09 angezeigt werden sollen.

Ich kenne die entsprechende Seite im Benutzerhandbuch, bekomme aber das folgende Script nicht zum Laufen. Das Script endet mit script type="javascript" und endet mit /script - natürlich entsprechend mit < >

function DynamicFilter(auswahlID, folgeID) {
    var optionA = document.getElementById(auswahlID  + "_01a");  // VT0x_01a ist die HTML-ID der Auswahloption "Ja"
    var optionB = document.getElementById(auswahlID  + "_02a");  // VT0x_02a ist die HTML-ID der Auswahloption „Nein
    var frage = document.getElementById(folgeID + "_qst");  // HTML-ID der Folgefrage
 
    function toggle() {
      // Die Bedingung prüft: Ist Option A 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 beiden Optionen angeklickt wird
    SoSciTools.attachEvent(optionA, "click", toggle);
    SoSciTools.attachEvent(optionB, "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();
}
 	
 	// Aufrufen der Klassenfunktion und Definition der Frage- und Antwortelemente entsprechend der Eingangsfrage
	new DynamicFilter("VT02", "VT03");
	new DynamicFilter("VT04", "VT05");
	new DynamicFilter("VT06", "VT07");
	new DynamicFilter("VT08", "VT09");

// -->

Hat jemand einige Idee woran es hakt?

Vielen Dank vorab!

by SoSci Survey (326k points)
Bitte werfen Sie mal einen Blick in die Browser-Konsole und dort in die Fehlerkonsole (https://www.soscisurvey.de/help/doku.php/de:general:browser-tools) und/oder posten Sie einen Pretest-Link direkt (!) zur betroffenen Seite.
by s226764 (130 points)
edited by s226764
Danke für die schnelle Rückfrage!
In der Chrome-Konsole bekomme ich drei Fehlermeldungen:

"Uncaught SyntaxError: Identifier 'WBSAutoFillFormTypeUndetermined' has already been declared (at VM48 content_script.js:1:1)"
-> Die Fehlermeldung taucht mit jedem Seitenaufruf erneut auf. "VM48" steigt dabei an: Also "VM49", "VM50" etc.

Sowie:
"Entwicklertools konnten Quellzuordnung nicht laden: Inhalt für chrome-extension://gighmmpiobklfepjocnamgkkbiglidom/browser-polyfill.js.map: Systemfehler: net::ERR_FILE_NOT_FOUND konnte nicht geladen werden"

Und:
"Uncaught SyntaxError: Identifier 'WBSAutoFillFormTypeUndetermined' has already been declared (at content_script.js:1:1)"

Und hier der Pretest-Link: https://www.soscisurvey.de/vr-lehramt-umr/?act=bRh8QDhlWwo3TfwpxzSLuhF1

Nochmals danke!

1 Answer

+1 vote
by SoSci Survey (326k points)
selected by s226764
 
Best answer

Danker für den Pretest-Link. Das ist in der Tat interessant ... die Seite behauptet, dass es die Klasse DynamicFilter() nicht gäbe, obgleich ich sie im Code und auf der Seite sehen.

Wenn man den JavaScript-Code in die JavaScript-Konsole einfügt, dann funktioneirt es auch. Also ... woran liegt es? Ich musste ein wenig suchen...

Das Problem ist das <script>-Tag. Dieses ist falsch. Es fehlt das text/, damit der Browser versteht, dass es sich um JavaScript handelt. Aktuell steht dort:

<script type="javascript">

Korrekt ist aber

<script type="text/javascript">

Und auch funktionieren würde

<script>
by s226764 (130 points)
Super, damit funktioniert es! ;)
Danke für den tollen Support!

PS: Ich habe das Beispiel 1b im Online-Handbuch entsprechend korrigiert (https://www.soscisurvey.de/help/doku.php/de:create:dynamic#beispiel_1bmehrere_gleichartige_fragen)

Viele Grüße aus Gießen!
by SoSci Survey (326k points)
Ich hatte nach dem Fehler in der Anleitung gesucht, ihn aber nicht gefunden. Danke, dass Sie sich gleich darum gekümmert 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

...