K
koli.bri
IE und for-in Schleife mit Checkboxen/Radiobuttons...
Hallo.
es eilt ein wenig, daher nur kurz:
Der HTML-Anguck-Müll aus dem Hause Microsoft verhält sich mir gegenüber vollkommen unangemessen unverständlich. Das der nicht laut lacht ist auch schon alles
Aber gut, der Fehler liegt ja meist vor dem Bildschirm, nicht da drunter...
Also, hier mein Script:
JavaScript:
HTML-Snippet
Ziel ist eine Simple Überprüfung, ob die Frage richtig beantwortet worden ist. Ganz simpel.
In den Values der Checkboxen ist vermerkt, ob die Antwort richtig(1)/falsch(0) ist.
Die Idee ist, dass der in einer Schleife jedes Checkbox-Element durchläuft, guckt, ob es makiert ist, und anhand der Value dann guck, ob das markiert/nicht markiert richtig ist.
Wenn nicht, wird eine Fehler-Variable erhöht und danach die Anzahl der Fehler ausgegeben.
Im Grunde ganz einfach, der FireFox kommt auch super damit klar...
Nur der Internet Explorer weigert sich irgendwie, in die Abfrage nach dem Typ zu gehen (die Notwendig ist, sonst nimmt der die Eigenschaft length auch noch mit in die Verarbeitung -> Ein Fehlerpunkt, der nicht sein soll)
Also, wo liegt der Fehler?
lieben Gruß
Lukas
Hallo.
es eilt ein wenig, daher nur kurz:
Der HTML-Anguck-Müll aus dem Hause Microsoft verhält sich mir gegenüber vollkommen unangemessen unverständlich. Das der nicht laut lacht ist auch schon alles
Aber gut, der Fehler liegt ja meist vor dem Bildschirm, nicht da drunter...
Also, hier mein Script:
JavaScript:
PHP:
function cpy(arg){
return arg;
}
function check_antwort2(frage){
var fehler = 0;
// alert(document.forms[frage].elements["a" + frage][1].type);
tmparr = cpy(document.forms[frage].elements["a" + frage]);
// alert(tmparr[0].type);
for(var key in tmparr){
// alert(key + "#" + tmparr[key]);
if("checkbox" == tmparr[key].type){
// alert("hie");
if(
(true == tmparr[key].checked
&& 1 == tmparr[key].value)
||
(false == tmparr[key].checked
&& 0 == tmparr[key].value)
){
// Antwort ist richtig
}else{
// Antwort ist falsch
fehler++;
}
}
}
if(0 == fehler){
// Alle Antworten richtig
document.getElementById("t" + frage).innerHTML = "Alles Richtig";
}else{
// Mindestens eine Falsche Antwort
document.getElementById("t" + frage).innerHTML = "es sind noch " + fehler + " Falsche Antworten da";
}
return false;
}
HTML-Snippet
HTML:
<a name="lfrage1"> </a>
<form action="#frage1" name="frage1" onSubmit="return check_antwort2(this.name)">
<p>Hier eine Frage -.-<br>
<input type="checkbox" name="afrage1" value="0"> Antw.0(falsch) <br>
<input type="checkbox" name="afrage1" value="1"> Antw.1(richtig) <br>
<input type="checkbox" name="afrage1" value="1"> Antw.2(Richtig) <br>
<input type="checkbox" name="afrage1" value="0"> Antw.3(falsch) <br>
<input type="submit" value="Absenden"><br></p>
<p id="tfrage1"></p>
</form>
Ziel ist eine Simple Überprüfung, ob die Frage richtig beantwortet worden ist. Ganz simpel.
In den Values der Checkboxen ist vermerkt, ob die Antwort richtig(1)/falsch(0) ist.
Die Idee ist, dass der in einer Schleife jedes Checkbox-Element durchläuft, guckt, ob es makiert ist, und anhand der Value dann guck, ob das markiert/nicht markiert richtig ist.
Wenn nicht, wird eine Fehler-Variable erhöht und danach die Anzahl der Fehler ausgegeben.
Im Grunde ganz einfach, der FireFox kommt auch super damit klar...
Nur der Internet Explorer weigert sich irgendwie, in die Abfrage nach dem Typ zu gehen (die Notwendig ist, sonst nimmt der die Eigenschaft length auch noch mit in die Verarbeitung -> Ein Fehlerpunkt, der nicht sein soll)
Also, wo liegt der Fehler?
lieben Gruß
Lukas
Zuletzt bearbeitet von einem Moderator: