Hallo,
ich möchte folgende Funktionalität (mehrfach) umsetzen:
Nach der Auswahl einer Antwort in einer Auswahlfrage soll ein "Weiter"-Button erscheinen.
Bei Klick auf diesen Button soll die Antwort nicht mehr geändert werden können. Gleichzeitig soll unterhalb die nächste Auswahlfrage eingeblendet und der Button ausgeblendet werden.
Ich habe mir dazu folgende Funktionen in JavaScript geschrieben und beim Erstellen des Fragebogens an erster Stelle eingefügt:
//Antwort einloggen, nächste Teilfrage einblenden, Button Ausblenden (als "onclick"-Methode im Button)
function disable_showNext(qst1ID, qst2ID, btnID) {
//Antwortänderung verhindern
var radios = document.getElementsByName(qst1ID)
var len = radios.length
for(let i=0;i<len;i++) {
radios[i].disabled=true;
}
//Button ausblenden
document.getElementById(btnID).style.visibility = "hidden"
//zweite Teilfrage einblenden
document.getElementById(qst2ID + "_qst").style.display=""
}
//zweite Teilfrage zu Beginn verstecken (beim Erstellen nach den Teilfragen ausführen)
function hide(qst2ID) {
var qst2 = document.getElementById(qst2ID + "_qst")
qst2.style.display="none"
}
//"Weiter"-Button anzeigen, sobald eine Auswahl getroffen wurde
function showBtnWeiter(qstID, btnID) {
var radios = document.getElementsByName(qstID)
var len = radios.length
var btn = document.getElementById(btnID)
function toggle() {
btn.style.visibility="visible"
}
for(let i=0;i<len;i++) {
SoSciTools.attachEvent(radios[i], "click", toggle)
}
}
Der Button sieht so aus und wird zwischen den Teilfragen per HTML-Code eingefügt:
<p><button id='btn1' onclick = "disable_showNext('EL10', 'btn1')" style = "visibility:hidden">Weiter</button></p>
Der Code tut in einem externen Test genau das, was er soll.
Im Fragebogen-Testmodus erscheint der Button nach Antwortauswahl wie gewünscht, bei Klick darauf wird jedoch nur ganz kurz die zweite Frage eingeblendet, sofort wieder ausgeblendet und der Standard-Hinweis ("Pflichtfrage") angezeigt, man solle die erste Teilfrage beantworten. Die zuvor gegebene Antwort ist wieder weg und alles ist scheinbar auf Anfang (bis auf den eingeblendeten Hinweis). Dies kann man endlos wiederholen.
Ich vermute, es hat etwas damit zu tun, dass ich die Radio-Buttons deaktiviere und dadurch ein weiteres Ereignis ausgelöst wird (?).
Ich bin auch auf die Funktion SoSciTools.disableInputs() gestoßen, aber die scheint immer nur die Eingabemöglichkeiten aller Fragen zu deaktivieren...
Gibt es eine Lösung dafür?
Danke für eure Hilfe!