Felix Riesterer: Bild nach Abfrage "erscheinen" lassen

Beitrag lesen

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.