Radiobutton Problem

DonMarkeZ

Mitglied
Hi,
ich habe versucht hier aus den Checkboxen Radiobutton zu machen;leider erfolglos. Wäre für jede Hilfe dankbar :)

Danke an dieser Stelle noch einmal an con-f-use der mir bei dem Script auch geholfen hat ^^
Code:
<script type="text/javascript"><!--
function auswerten() {
	var punkte = 0;
	for (i=0; obj = document.getElementsByName('richtig')[i]; i++)
		if (obj.checked) punkte++;
	document.getElementById('ausgabe').firstChild.data =
		'Du hast '+ punkte +' von '+ (pmax = document.getElementsByName('richtig').length) +
		' möglichen Punkten erreicht. Das sind '+ Math.round(punkte*100/pmax) +' Prozent.';
}

//-->
</script> 

</head><body>

<form><div>
Frage 1:<br />
<input type="checkbox" name="falsch"  /> Falsche Antwort<br />
<input type="checkbox" name="falsch" /> Falsche Antwort<br />
<input type="checkbox" name="richtig" /> Richtige Antwort<br />
<br />
Frage 2:<br />
<input type="checkbox" name="falsch" /> Falsche Antwort<br />
<input type="checkbox" name="richtig" /> Richtige Antwort<br />
<input type="checkbox" name="falsch" /> Falsche Antwort<br />
<br />
Frage 3:<br />
<input type="checkbox" name="richtig" /> Richtige Antwort<br />
<input type="checkbox" name="falsch" /> Falsche Antwort<br />
<input type="checkbox" name="falsch" /> Falsche Antwort<br />
<br />
<input type="button" value="Auswerten!" onclick="auswerten()" />
</div></form>

<div id="ausgabe">&nbsp;</div>

</body></html>
 
Zuletzt bearbeitet:

DonMarkeZ

Mitglied
Kann ich dann auch weiterhin das Script beibehalten, welches am anfang des Codes steht?
Code:
<script type="text/javascript"><!--
function auswerten() {
	var punkte = 0;
	for (i=0; obj = document.getElementsByName('richtig')[i]; i++)
		if (obj.checked) punkte++;
	document.getElementById('ausgabe').firstChild.data =
		'Du hast '+ punkte +' von '+ (pmax = document.getElementsByName('richtig').length) +
		' möglichen Punkten erreicht. Das sind '+ Math.round(punkte*100/pmax) +' Prozent.';
}

//-->
</script>
Oder wie habe ich deine Antwort zu verstehen Gumbo ? Es ist mir klar, dass die Radiobuttons den selben Namen haben müssen, damit von 4 beispielsweise nur 1 angeklickt werden kann. Allerdings klappte dies nicht, da anscheinend das Script nicht kompatibel ist und ich habe leider keinerlei Ahnung wie ich das Script umzuschreiben habe, um den gleichen Effeckt wie bei den Checkboxen zu haben.
 

Gumbo

Erfahrenes Mitglied
Probier mal folgende Funktion:
Code:
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('richtig').length) +
		' möglichen Punkten erreicht. Das sind '+ Math.round(punkte*100/pmax) +' Prozent.';
	}
}
 

DonMarkeZ

Mitglied
Danke Gumbo damit funktioniert es !
Leider steht dort nun wenn ich alle richtigen angeklickt habe "Du hast 3 von 0 möglichen Punkten erreicht. Das sind Infinity Prozent." Kann man das irgendwie auch ändern, dass das auch mit Radiobuttons funktioniert ?
Gruß

Könnte es an diesem Abschnitt liegen ?
Code:
(pmax = document.getElementsByName('richtig').length)

Alles klar hab den Fehler gefunden ^^ Da ich die Namen auf "antwort" geändert habe musste ich natürlich auch dementsprechend das Script umschreiben :) Es kann so simple sein
Danke nochmal !
 
Zuletzt bearbeitet: