Liebe Sabine,
mittlerweile habe ich den Code getestet und verbessert. Hier kommt die funktionierende Version (winzige Änderungen an Deinem HTML sind nötig!)
function Antwort(Aufgabenteil) {
// Diese Funktion wird mit einem übergebenen Parameter aufgerufen,
// der angibt, welcher Aufgabenteil korrigiert werden soll.
// Aufruf im HTML-Quelltext (für Teil 2): onclick="Antwort(2)"
var RichtigBild = "pfad/richtig.gif";
var FalschBild = "pfad/falsch.gif";
var Loesungen = {
// hier werden die Lösungen für alle Teile gespeichert
Teil1 : [
"68",
"831",
"2 777",
"1 929",
"464",
"1 039",
"881",
"3 333" // letztes Element: hier darf kein Komma folgen!
],
Teil2 : [
// diese Werte sind für Radiobuttons (und benennen den jeweils richtig zu setzenden der verschiedenen möglichen, angefangen bei Radiobutton Nummer null)
1,
0,
1,
1,
0,
0
],
Teil3 : [
"CCXXXIX",
"DXLIII",
"MXXVI",
"CMLXXIX",
"MMCDXXXIV"
] // auch hier kein Komma, da (hier) letzter Teil!
};
// Die Aufgabenteile müssen in Formularen sitzen, die entsprechend nummeriert sind
// Teil 1: <form name="Formular1"> oder Teil 3: <form name="Formular3">
// input-Felder müssen einen name-Wert nach folgendem Muster haben:
// name="Teil3_Eingabe4" (für die vierte Aufgabe im dritten Aufgabenteil)
// Bewertungsgrafiken müssen eine ID nach folgendem Muster haben:
// id="Teil3_Wert4" (für die Bewertung der vierten Aufgabe im dritten Aubgabenteil)
// jetzt werden die Eingaben geprüft und korrigiert
for (var i = 0; i < Loesungen["Teil"+Aufgabenteil].length; i++) {
var Ergebnis;
// Radiobuttons oder Textinputs?
if (document["Formular"+Aufgabenteil]["Teil"+Aufgabenteil+"_Eingabe"+(i+1)].length > 1) {
// Radiobuttons
Ergebnis = document["Formular"+Aufgabenteil]["Teil"+Aufgabenteil+"_Eingabe"+(i+1)][Loesungen["Teil"+Aufgabenteil][i]].checked;
} else {
// Textinputs
Ergebnis = (document["Formular"+Aufgabenteil]["Teil"+Aufgabenteil+"_Eingabe"+(i+1)].value.toLowerCase() == Loesungen["Teil"+Aufgabenteil][i].toLowerCase());
}
// Bewertungsgrafik setzen
document.getElementById("Teil"+Aufgabenteil+"_Wert"+(i+1)).src = Ergebnis ? RichtigBild : FalschBild;
}
}
Schreib doch mal, ob das bei Dir funktioniert hat!
Nebenbei: Das Nachschauen könnte man ein kleines Bisschen erschweren, indem man dieses Javascript in eine externe Javascript-Datei auslagert...
Liebe Grüße aus Ellwangen,
Felix Riesterer.