0 votes
ago in SoSci Survey (dt.) by s310760 (120 points)
edited ago by SoSci Survey

Hallo,

ich habe schon Mal in einem anderen SoSci Survey-Projekt mit JavaScript gearbeitet, nur leider komme ich in meinem aktuellen Projekt absolut nicht weiter. Ich bin also absolute HTML-Anfängerin.

Es soll auf einer Fragebogenseite aus einer Itembatterie bei drei verschiedenen Items, je nachdem welche Antwortoptionen ("trifft eher zu" und "trifft voll und ganz zu") ausgewählt werden, im Anschluss auf der gleichen Seite drei verschiedene offene Texteingabe-Fragen angezeigt werden.
Ich habe dafür schon verschiedenes versucht und mehrere Anleitungen befolgt und mein letzter Versuch war folgender Code:

<script type="text/javascript">
function DynamicFilter(inPrefix, textId) {
    // Antwortoptionen der jeweiligen IN13-Frage
    var optionA = document.getElementById(inPrefix + "_011");  // "trifft überhaupt nicht zu"
    var optionB = document.getElementById(inPrefix + "_012");  // "trifft eher nicht zu"
    var optionC = document.getElementById(inPrefix + "_013");  // "teils/teils"
    var optionD = document.getElementById(inPrefix + "_014");  // "trifft eher zu"
    var optionE = document.getElementById(inPrefix + "_015");  // "trifft voll und ganz zu"

    // zugehörige offene Texteingabe
    var frage = document.getElementById(textId);

    function toggle() {
        // Wenn D oder E gewählt ist → Texteingabe anzeigen, sonst ausblenden
        if (optionD.checked || optionE.checked) {
            frage.style.display = "";   // oder "block", je nach deinem Layout
        } else {
            frage.style.display = "none";
        }
    }

    // Event-Handler für alle Optionen
    SoSciTools.attachEvent(optionA, "click", toggle);
    SoSciTools.attachEvent(optionB, "click", toggle);
    SoSciTools.attachEvent(optionC, "click", toggle);
    SoSciTools.attachEvent(optionD, "click", toggle);
    SoSciTools.attachEvent(optionE, "click", toggle);

    // Initialzustand
    toggle();
}

// Konkreter Aufruf für deine Frage:
new DynamicFilter("IN13_01", "IN21_qst");
new DynamicFilter("IN13_03", "IN22_qst");
new DynamicFilter("IN13_04", "IN23_qst");
</script>

Das funktioniert aber alles nicht und jetzt wird der Code sogar noch im Fragebogen angezeigt. Ich wäre Ihnen sehr dankbar, wenn Sie mit weitehelfen könnten.

Vielen Dank und viele Grüße

1 Answer

0 votes
ago by SoSci Survey (379k points)

jetzt wird der Code sogar noch im Fragebogen angezeigt

Okay, das ist vermutlich einfach zu lösen: Stellen Sie bitte sicher, das bei "Darstellung" die Option "HTML-Code" ausgewählt ist (nicht "einfacher Text" oder "formatiert").

Wenn es dann immer noch nicht funktioniert, öffnen Sie bitte mal die JavaScript-Konsole im Browser und sehen Sie nach, ob und ggf. welche Fehlermeldung dort angezeigt wird.

Wenn wir einen Blick auf die Seite werfen sollen, erstellen Sie bitte einen Pretest-Link direkt (!) zu der betroffenen Seite und posten Sie diesen hier als Kommentar.

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

...