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