Quiz-Problem

DonMarkeZ

Mitglied
Hi,
ich hab hier ein Quiz und die dazugehörige JS-Datei. Leider sieht es so aus, dass wenn ich auf auswerten klicke, dass ich dann angezeigt bekomme, dass ich z.b. 2 von 3 oder 3 von 3 Antworten richtig habe. Das Problem ist nur das ich 6 Antworten gegeben habe :(
Ich hoffe ihr könnt mir helfen.
Hier die Codes !
HTML-Dokument:
HTML:
<html>
<head>
<title>Quiz</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script src="radio.js" type="text/javascript" />
</head>
<body>
<form><div>
Welche L&auml;nder ergeben zusammen die Fl&auml;che,
<br>die in den letzten 30 Jahren geschmolzen ist?:<br />
<input type="radio" name="antwort" value="falsch"  />Italien und Portugal<br />
<input type="radio" name="antwort" value="falsch"/>Frankreich und Belgien<br />
<input type="radio" name="antwort" value="richtig"/>Frakreich und Spanien<br />
<br />
Wie hoch ist die absehbare Erw&auml;rmung
<br>im rest dieses Jahrhunderts?:<br />
<input type="radio" name="antwort1" value="falsch"/>7- 14°C<br />
<input type="radio" name="antwort1" value="richtig"/>4 - 7°C<br />
<input type="radio" name="antwort1" value="falsch"/>3 - 5°C<br />
<br />
Was bringt das Eis zum schmelzen?:<br />
<input type="radio" name="antwort2" value="richtig"/>Die globale Erw&auml;rmung<br />
<input type="radio" name="antwort2" value="falsch"/>Die zunehmende Kraft der Sonne<br />
<input type="radio" name="antwort2" value="falsch"/>Warme Winde aus der Sahara<br />
<br />
Zuwieviel Prozent besteht Gr&ouml;nland nicht aus Eis?:<br />
<input type="radio" name="antwort3" value="falsch"/>50%<br />
<input type="radio" name="antwort3" value="richtig"/>15%<br />
<input type="radio" name="antwort3" value="falsch"/>85%<br />
<br />
Wovor sch&uuml;tzen uns die Polarkappen?:<br />
<input type="radio" name="antwort4" value="richtig"/>Vor der &Uuml;berhitzung<br />
<input type="radio" name="antwort4" value="falsch"/>Vor dem Austrocknen<br />
<input type="radio" name="antwort4" value="falsch"/>Vor einer &Uuml;berschwemmung<br />
<br />
Wie gro&szlig; ist die Arktis im System
<br>der mathematisch-astronomischen Zonen?:<br />
<input type="radio" name="antwort5" value="richtig"/>21,2 Mio. km²<br />
<input type="radio" name="antwort5" value="falsch"/>8 Mio. km²<br />
<input type="radio" name="antwort5" value="falsch"/>26 Mio. km²<br />
<br />
<input type="button" value="Auswerten!" onclick="auswerten()" />
</div></form>
<p>
<div id="ausgabe">&nbsp;</div>
</p>
</body>
</html>

JS-Datei:
Javascript:
function auswerten()
{
	var punkte = 0;
	var inputElements = document.getElementsByTagName("input");
	for(var i=0; i<inputElements.length; i++ ) {
		if( !inputElements[i].checked || inputElements[i].value!="richtig" ) {
			continue;
		}
		punkte++;
		document.getElementById('ausgabe').firstChild.data =
			'Du hast '+ punkte +' von '+ (pmax = 

document.getElementsByName('antwort').length) +
		' möglichen Punkten erreicht. Das sind '+ Math.round(punkte*100/pmax) +' Prozent.';
	}
}
Gruss
 
Zuletzt bearbeitet:
Das Problem findet sich in der Zeile:
Code:
'Du hast '+ punkte +' von '+ (pmax  

    =document.getElementsByName('antwort').length) +
Es gibt nunmal nur drei Radio-Buttons mit dem namen Antwort, also ist die length immer nur 3.

Außerdem bist du in dieser Zeile mit den Anführungszeichen durcheinander gekommen:
HTML:
<input type="radio" name="antwort2 value="falsch"/>Warme Winde aus der Sahara<br />
Nach "antwort2" fehlt ein Anführungszeichen.

Ganz nebenbei, ist es klüger <script src="..." type="..."></script> anstelle von <script src="..." type="..." /> zu benutzen, damit es auch in älteren Browsern nicht zu Fehlern kommt.

Mein Vorschlag zur Optimierung und Lösung wäre ja
Javascript:
function auswerten() {
	var punkte = pmax = 0;
	for(var i=0; obj=document.getElementsByTagName('input')[i]; i++ )
		if (obj.value=='richtig') {
			if (obj.checked) punkte++;
			pmax++
		}
	document.getElementById('ausgabe').firstChild.data =
		'Du hast '+ punkte +' von '+ pmax +
		' möglichen Punkten erreicht. Das sind rund '+ 
		Math.round(punkte*100/pmax) +' Prozent.';
}
Für die Zukunft: Das sind alles keine Fehler, die ein Blick in die Javascript-Konsole nicht verraten hätten. Das nächste mal bevor du hier Postest, schau dir die Fehlermeldungen an und meditier drüber.
 
Zuletzt bearbeitet:
zähle zum Bsp. die Anzahl der Felder mit dem value "richtig" ...solange es zu jeder Frage nur 1 richtige Antwort gibt, sollte das erfolgversprechend sein :-)
 
Auf jeden Fall nicht, indem du es dir hier schreiben lässt ;-]
Du hast da schon ne Schleife drin, die gilt es nur etwas zu modifizieren.

Dies ist hier nicht die Bastelstunde für Leute, die sich von irgendwoher Skripte saugen und diese dann angepasst haben möchten.....Code durchlesen->verstehen lernen->ändern->done ;)
 
Das dachte ich mir. Leider habe ich es versucht per getElementsByTagName nur da hatte ich zu viele :D ich weiß nur nicht, wie ich ihm sage, dass er nach value schauen soll anstatt nach name, da ich keine Ahnung habe wie sich das überhaupt nennen könnte....Bitte hilf mir ^^
Gruss
 
1.) Betteln bringt nichts (!)

2.) Schau dir meinen Beitrag von oben nochmal ganz genau an, Blindfisch... :-)

Lesen und denken musst du schon selber, das kann dir niemand abnehmen.
 
Zuletzt bearbeitet:
Dann wäre dir mit Sicherheit auch aufgefallen, dass bevor du deinen Beitrag geschrieben hast ich dieses Thema als Erledigt makiert habe und sich somit deine Äußerung bezüglich des "Blindfisches" wohl nicht bewahrheitet hat.
Gruss

Achja, ausserdem empfand ich mein "Bitte hilf mir" nicht als ein Betteln oder ähnliches sondern als eine Freundlichen Art und Weise zu Fragen ob mit geholfen wird !

Trotzdem hab vielen Dank für deine Bemühungen bezüglich des JS-Scripts.
 
Zuletzt bearbeitet:
Dann darf ich dir mal sagen, das du nach meinen Thread nochmals gepostet hast und es dir da hätte auffallen können, zumal eine große Codebox dazugekommen ist.

Außerdem würde ich es durchaus Betteln nennen, wenn jemand trotz eines eindeutigen Neins eines Admins noch weiter nach Hilfe fragt.
 

Neue Beiträge

Zurück