Richtig oder falsch - mehr will ich ja gar nicht
Utah
- javascript
0 Thomas Meinike0 JürgenB0 H2O0 Pete0 OLE
Hy guys!!!
Ich habe einen Fragebogen vorbereitet, wo zu jeder Frage drei Antwortmöglichkeiten(Radiobuttons zum anklicken) gegeben sind. Der richtigen Antwort habe ich den value"r" gegeben und den falschen natürlich"f". Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann. Ist wahrscheinlich nicht so schwer, doch ich denk wahrscheinlich viel zu kompliziert um auf die richtige Antwort zu kommen. Danke für die Hilfe!!!
Hallo,
Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann.
Vielleicht hilft vom Ansatz her dieses Beispiel, welches aber lediglich den Einsatz der Methode getElementsByName() "illustrieren" soll(te): http://www.styleassistant.de/tips/beispiel45b.htm.
Bei einem JS-Quiz stehen aber die Loesungen bereits im Code (im genannten Beispiel in einem Array) ...
MfG, Thomas
Hallo,
Richtig.
Du benötigst, zusätzlich zu den Grundlagen der Sprache Javascript Wissen über den Umgang mit Formularen:
http://de.selfhtml.org/javascript/objekte/forms.htm
http://de.selfhtml.org/javascript/objekte/elements.htm#checked
Alternativ könnte die Auswertung auch serverseitig laufen.
Gruß, Jürgen
Hallo.
Ich habe einen Fragebogen vorbereitet, wo zu jeder Frage drei Antwortmöglichkeiten(Radiobuttons zum anklicken) gegeben sind. Der richtigen Antwort habe ich den value"r" gegeben und den falschen natürlich"f". Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann. Ist wahrscheinlich nicht so schwer, doch ich denk wahrscheinlich viel zu kompliziert um auf die richtige Antwort zu kommen. Danke für die Hilfe!!!
So (oder so ähnlich) sollte dein Script aussehen:
<script type="text/javascript">
<!--
var anzahl = "0";
function fragen() {
if (document.formname.frageeins[1].checked == true) {
anzahl++;
}
if (document.formname.fragezwei[0].checked == true) {
anzahl++;
}if (document.formname.fragedrei[2].checked == true) {
anzahl++;
}
alert("Sie haben von 3 Fragen " + anzahl + " richtig beatwortet.");
anzahl = "0";
//-->
</script>
In diesem Script wird davon ausgegangen:
1. Frage: 2. Antwort richtig
2. Frage: 1. Antwort richtig
3. Frage: 3. Antwort richtig
Noch ein Link zu SELFHTML:
http://de.selfhtml.org/javascript/objekte/elements.htm#checked
Also das value wird in dem Script oben übrigens gar nicht gebraucht.
Ich hoffe ich konnte helfen, H2O
Ich habe das auch schon gemacht und habe dafür die eine/zwei globale Variablen benutzt:
Im JS-Bereich definierst du zB
var numberOfRightAnswers = 0;
var numberOfWrongAnswers = 0;
Jedes mal wenn ein Radiobutton geklickt wird hast du noch folgendes dabei:
<input type="radio" name="name1" value="f" onClick="numberOfWrongAnswers++">
bzw.
<input type="radio" name="name1" value="r" onClick="numberOfRightAnswers++">
Dabei hast du aber Probleme, wenn der User ständig die radiobuttons klickt, weil dann die ganze Zeit hochgezählt wird.
Daher kannst du auch nur eine globale Variable und diese durch onClick auf "r" oder "f" setzen.
Pete
Hy guys!!!
Ich habe einen Fragebogen vorbereitet, wo zu jeder Frage drei Antwortmöglichkeiten(Radiobuttons zum anklicken) gegeben sind. Der richtigen Antwort habe ich den value"r" gegeben und den falschen natürlich"f". Nun will ich eine Funktion schreiben, die erkennt, ob eine richtige Antwort gegeben wurde und diese auch zusammenzählt, so dass am Schluß das alert "sie haben...von...Fragen richtig!" ausgegeben werden kann. Ist wahrscheinlich nicht so schwer, doch ich denk wahrscheinlich viel zu kompliziert um auf die richtige Antwort zu kommen. Danke für die Hilfe!!!
Hallo Utah,
Du könntest durch das Formular laufen und bei jedem ausgewählten Radio-Button die value-Eigenschaft auf 'r' prüfen und bei jeder Namensänderung der Radio-Buttons den Gesamtzähler hochzählen.
So sollte die Funktion innerhalb eines Formulars alle richtig ausgewählten Radio-Buttons finden und die Gesamzahl der Fragen ausspucken. =>
function FormTest()
{
var treffer=0;
var gesamt=1;
var rname="";
for(x=0;x<window.document.forms[0].elements.length;x++)
{
if(document.forms[0].elements[x].type=="radio")
{
if(rname=="")rname=document.forms[0].elements[x].name;
if(rname!=document.forms[0].elements[x].name)
{
gesamt++;
rname=document.forms[0].elements[x].name;
}
if(document.forms[0].elements[x].checked==true&&document.forms[0].elements[x].value=="r")
treffer++;
}
}
alert("Sie haben von "+gesamt+" Fragen "+treffer+" richtig beantwortet");
}
Gruss
OLE