PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleines Javascript-Schleifen-Problem


Gast
2006-03-02, 20:49:58
Wie kann ich die Schleife umbauen, dass nicht nur Form1.R1 sondern auch Form2.R2,... überprüft werden?


function RBCheck() {

var f = document.Form1, i;

for (i = 0; i < f.R1.length; i ++) {
if (f.R1[i].checked == true) {
alert ("Die Option " + (i + 1) + " wurde selektiert !");
}
}
}


thx

AlSvartr
2006-03-02, 21:33:38
Wie kann ich die Schleife umbauen, dass nicht nur Form1.R1 sondern auch Form2.R2,... überprüft werden?


function RBCheck() {

var f = document.Form1, i;

for (i = 0; i < f.R1.length; i ++) {
if (f.R1[i].checked == true) {
alert ("Die Option " + (i + 1) + " wurde selektiert !");
}
}
}


thx
Worauf ueberprueft? Du meinst das i<f.R1.length? Kannste doch einfach unden... also for (i = 0; (i < f.R1.length) && (i < f.R2.length); i ++) (Wobei ich das irgendwie haesslich finde in ner for-Schleife...da wuerd ich eher ne while vorziehen..)

Uebrigens...if (f.R1[i].checked == true) ist doppelt gemoppelt, das == true kannste dir sparen, f.R1[i].checked ist ja schon ein boolscher Ausdruck.

<edit> Ich seh grad..Form2..naja, dann halt noch entsprechend anpassen.. ;)

Mr. Lolman
2006-03-05, 10:31:42
Ne, ich hatte mir das so gedacht (funzt aber nicht ;():


function RBCheck() {
var f = document.form, i, j;
for (j = 0; j < 36; j ++) {
for (i = 0; i < f[j].answer[j].length; i ++) {
if (f[j].answer[j][i].checked) {
var result[j] = (i + 1);
alert ("Die Option " + (i + 1) + " wurde selektiert !");
}
}
}
}

Mr. Lolman
2006-03-05, 11:35:09
Lasst den Javanoob nicht dumm sterben ;(

Coda
2006-03-05, 11:38:32
Javascript-Noob bitte.

Du solltest ein paar mehr Infos liefern, so kann man echt bloß raten was du überhaupt möchtest.

Mr. Lolman
2006-03-05, 12:08:28
Javascript-Noob bitte.

Du solltest ein paar mehr Infos liefern, so kann man echt bloß raten was du überhaupt möchtest.

Das soll ein EDV-Quiz mit ca 30 Fragen werden. Und 30 for-Schleifen zum Radiobutten auswerten sind ja etwas unschön, deswegen dachte ich an eine Verschachtelte welche. Hier mal der Code mit 3 Fragen:


<html>
<head>
<script language="JavaScript" type="text/javascript">
//<!-- Versteckt Script für ältere Browser --


function quiz() {

var f = document.form, i, j;
for (j = 0; j < 3; j ++) {
for (i = 0; i < f[j].answer[j].length; i ++) {
if (f[j].answer[j][i].checked) {
var result[j] = (i + 1);
alert ("Die Option " + (i + 1) + " wurde selektiert !");
}
}
}
}


i=0;
if (result1==4){i++}
if (result2==3){i++}
if (result3==4){i++}

document.total.score.value = i
var per = Math.round((i / 3) * 100)
document.total.percent.value = per

}

//-->
</SCRIPT>

</head>


<body>

<FORM NAME="form1">
<b>1) Welche Computer dienen zu Verwaltung von sehr großen Datenmengen?</b>
<br><input type="radio" name="answer1" value="1"> PDA
<br><input type="radio" name="answer1" value="2"> Desktop
<br><input type="radio" name="answer1" value="3"> Notebook
<br><input type="radio" name="answer1" value="4"> Mainframe
</FORM>

<FORM NAME="form2">
<b>2) Was ist die Abkürzung für ein Gerät in dem Termine und Adressen gespeichert werden können?</b>
<br><input type="radio" name="answer2" value="1"> ADSL
<br><input type="radio" name="answer2" value="2"> GUI
<br><input type="radio" name="answer2" value="3"> PDA
<br><input type="radio" name="answer2" value="4"> MP3
</FORM>

<FORM NAME="form3">
<b>3) Wofür steht die Abkürzung CPU?</b>
<br><input type="radio" name="answer3" value="1"> Calculating Processing Unit
<br><input type="radio" name="answer3" value="2"> Control Program Unit
<br><input type="radio" name="answer3" value="3"> Control Process Unit
<br><input type="radio" name="answer3" value="4"> Central Processing Unit
</FORM>


<form name="total">
<input type="button" value="Auswerten" onClick="quiz()">
<input type="button" value="Neustart" onClick='parent.location="javascript:location.reload()"'>
<br>
<hr size="1">
<br><p align="left">
Du hast:
<input name="score" size=5 >von
<input name="outof" value="3" size=5 >richtig beantwortet.<br>
<br>
Damit hast Du:
<input name="percent" size=3 > % des Klassenziels erreicht.<br>
<hr size="1">
</FORM>
</body>
</html>


/edit: Das "Alert" ist nur zum Testen ob die function funktioniert ;)

MadMan2k
2006-03-05, 13:00:58
http://de.selfhtml.org/javascript/objekte/forms.htm


function RBCheck() {
var f = document.forms, j;
for (j = 0; j < f.length; j++) {
var r = f[j].getElementsByName("answer"+j);

for (i = 0; i < r.length; i ++) {
if (r[i].checked) {
var result[j] = (i + 1);
alert ("Die Option " + (i + 1) + " wurde selektiert !");
}
}
}
}


ohne Gewehr

Mr. Lolman
2006-03-05, 13:24:18
http://de.selfhtml.org/javascript/objekte/forms.htm


function RBCheck() {
var f = document.forms, j;
for (j = 0; j < f.length; j++) {
var r = f[j].getElementsByName("answer"+j);

for (i = 0; i < r.length; i ++) {
if (r[i].checked) {
var result[j] = (i + 1);
alert ("Die Option " + (i + 1) + " wurde selektiert !");
}
}
}
}


ohne Gewehr

Thx, aber so funzt das leider auch nicht ;(