Mahlzeit,
hier ist der code (l und k sind zähler von "richtig" und "falsch"):
Wow ... es geht doch nichts über sprechende Variablennamen. Wieso hast Du sie nicht "hokuspokus" und "schnarzpideltroet" genannt? Oder gar - Achtung, jetzt kommt eine vollkommen irre Idee! - einfach "richtige" und "falsche"?
function multiplikation() {
var l = 0;
var k = 0;
Das sind beides lokale Variablen - ich wüsste nicht, wie Du diese in der Funktion "check" hochzählen willst ...
var a = Math.round(Math.random()*100);
Da war doch irgendwas mit Math.round? (Nutze das Forumsarchiv!)
var c = multipl.Eingabe.value;
Was genau soll Deiner Meinung nach das Objekt "multipl" sein?
if(c=a*b) {
Hier weist Du der Variablen "c" den Wert der Multiplikation von a*b zu. Ich denke nicht, dass Du das willst.
var l = l+1;
Ich denke nicht, dass Du in dieser Funktion Zugriff auf die lokalen Variablen einer anderen Funktion hast (s.o.).
Überdenke Dein gesamtes Konzept!
<script type="text/javascript">
[code lang=javascript]
var aufgaben = 0;
var richtige = 0;
var falsche = 0;
function multiplikation() {
var a = Math.floor(Math.random() * 100) + 1;
var b = Math.floor(Math.random() * 100) + 1;
document.write('<form name="multipl' + aufgaben + '">' + a + ' * ' + b + ' = ' + '<input type="text" name="Eingabe">' + '<input type="button" name="button" onclick="check(this);" value="Check!">' + '<\/form>');
}
function check(obj) {
var c = parseFloat(obj.parentNode.getElementsByName('Eingabe')[0].value);
if (c == a * b) {
richtige++;
document.write('Richtig!');
} else {
falsche++;
document.write('Falsch!');
}
aufgaben++;
document.write(' (' + richtige + ' Richtige \/ ' + falsche + ' Falsche)<br>');
multiplikation();
}
}
</script>[/code]
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|