Hallo!
In meiner Studie möchte ich den Versuchspersonen direktes Feedback zu ihrer Antwort auf eine Frage geben. Dafür habe ich Auswahlfragen mit 4 Antwortoptionen konstruiert, von denen nur eine richtig ist. Mit Hilfe dieser Seite: https://www.soscisurvey.de/help/doku.php/de:create:dynamic habe ich einen Java Skript Code erstellt, bei dem nach dem Anklicken der Antwortoption direkt ein Text mit "Das war richtig" oder "Das war leider falsch" erscheint und die jeweilige Antwortoption entweder in grün oder rot hervorgehoben wird. Mein Problem ist jetzt, dass nach dem klicken auf eine Antwortoption und dem erscheinen des Feedbacks, die Antwort noch einmal geändert werden kann. Das Hervorheben durch die Farbe bleibt dabei bestehen. Man kann also so lange jede Option durchprobieren, bis man die richtige Antwort gefunden hat.
Das würde mir leider mein Design ein wenig zerhauen. Ich möchte eigentlich, dass die Versuchspersonen nur eine Option auswählen und diese dann nicht mehr korrigieren können, sondern nur noch das Feedback zu ihrer Antwort erhalten.
So sieht mein Code für das Feedback zur Zeit aus:
<script type="text/javascript">
//<!--
var Richtig = document.getElementById("LF01_04a"); // LF01_04a ist die HTML-ID der Auswahloption "Richtig Antwort"
var Falsch1 = document.getElementById("LF01_01a"); // Falsch
var Falsch2 = document.getElementById("LF01_02a"); // Falsch
var Falsch3 = document.getElementById("LF01_03a"); // Falsch
var FBrichtig = document.getElementById("FB01_qst"); // HTML-ID der Texteingabe
var FBfalsch = document.getElementById("FB02_qst");
var RichtigC = document.getElementById("LF01_04_container"); //Container als Variable für die Farbe
var FalschC1 = document.getElementById("LF01_01_container");
var FalschC2 = document.getElementById("LF01_02_container");
var FalschC3 = document.getElementById("LF01_03_container");
function toggle() {
if (Richtig.checked) {
// Wurde die Richtige Antwort ausgewählt, dann wird das Feedback angezeigt
// Keine Angabe ("") verwendet die Standard-Einstellung (normal anzeigen)
FBrichtig.style.display = "";
FBfalsch.style.display = "none";
RichtigC.style.backgroundColor = "lightgreen"; //Richtige Antwort grün anzeigen
} else {
// Mit der Anzeigeoption "none" wird die Frage ausgeblendet
FBrichtig.style.display = "none";
FBfalsch.style.display = "";
}
//Wurde eine falsche Antwort geklickt, dann soll nur diese rot angezeigt werden.
if (Falsch1.checked) {
// Wurde die 1. Falsche Antwort ausgewählt, dann soll dieser Container rot angezeigt werden
FalschC1.style.backgroundColor = "red";
}
if (Falsch2.checked) {
// Wurde die 2. Falsche Antwort ausgewählt, dann soll dieser Container rot angezeigt werden
FalschC2.style.backgroundColor = "red";
}
if (Falsch3.checked) {
// Wurde die 3. Falsche Antwort ausgewählt, dann soll dieser Container rot angezeigt werden
FalschC3.style.backgroundColor = "red";
}
}
// Die Funktion soll jedesmal ausgeführt werden, wenn eine der drei Optionen angeklickt wird
SoSciTools.attachEvent(Richtig, "click", toggle);
SoSciTools.attachEvent(Falsch1, "click", toggle);
SoSciTools.attachEvent(Falsch2, "click", toggle);
SoSciTools.attachEvent(Falsch3, "click", toggle);
// Und jetzt gleich soll sie auch ausgeführt werden, damit die Anzeige zu Beginn korrekt ist
// (z.B. ausblenden der Texteingabe zu Beginn)
toggle();
//-->
</script>
Auf der Seite sind neben der Auswahlfrage noch die HTML-Codes für Richtiges Feedback (FB_01_qst) und falsches Feedback (FB_02_qst).
Ich bin über jede Hilfe dankbar!