Checkboxen in einer Schleife ansprechen
DarkNeo
- javascript
0 Patric0 DarkNeo
0 holger kuehne0 DarkNeo0 holger kuehne0 darkneo
0 Spike
Hi
Egal was ich mache, in dem Array a[0][0] steht immer nur der wert der ersten Checkbox. Wenn ich zum Beispiel 3 checkboxen in der Schleife ausgebe und auf eine checkbox klicke dann erhält a[0][0] trotzdem den wert der ersten checkbox (antwort[0]) und nicht den wert der angeklickten checkbox z.B. antwort[1].
k=0;
wievielantwort=4;
do{
document.write("<br><input type='checkbox' name='frage' onClick=' a[0][0]=antwort[k];'>");
document.write(antwort[k]);//Antwort ausgeben
k++;
}while(k<wievielantwort)
Für hilfe wäre ich dankbar THX
Hi,
mußt Du 'ner Checkbox nicht 'nen Value zuweisen, um sie von anderen Artgenossen unterscheiden zu können? Hab' ich bei Dir nicht finden können.
Kannst ja hier mal nachsehen: <../../tche.htm>
Gruß
Patric - http://www.schulkameraden.de
Danke aber daran liegt es nicht...
Hi
Ausser dem Hinweis von Patric:
wenn du a[0][0] den wert antwort[k] zuweist, dann ist bei deinem Beispiel beim clicken auf eine Checkbox k immer!! gleich 4 (nach dem durchlaufen der do..while schleife ist k=wievielantwort=4!) und deshalb muesste auch a[0][0] auch immer gleich antwort[4] sein und nicht antwort[0].
Tschau Holger0
Hi
Ausser dem Hinweis von Patric:
wenn du a[0][0] den wert antwort[k] zuweist, dann ist bei deinem Beispiel beim clicken auf eine Checkbox k immer!! gleich 4 (nach dem durchlaufen der do..while schleife ist k=wievielantwort=4!) und deshalb muesste auch a[0][0] auch immer gleich antwort[4] sein und nicht antwort[0].
Tschau Holger0
Es müssen aber beliebig viele Antworten ausgebbar sein... zum Beispiel auch 20. Deshalb brauch ich ja die dowhileschleife!!! Ich würde sie ja auch lieber weglassen *g*
Und das mit dem Value hab ich auch schon versucht. Habs nochmal hinzugefügt...
k=0;
wievielantwort=4;
i=0;//für das value
do{
document.write("<br><input type='checkbox' name='frage' value='v"+i+"' onClick=' a[0][0]=antwort[k];'>");
document.write(antwort[k]);//Antwort ausgeben
k++;
i++;
}while(k<wievielantwort)
Hi
OK ich glaube, du hast nicht so ganz verstanden was ich meine.
Die dowhileschleife ist nicht das Problem, sondern das a[0][0] immer!! gleich antwort[wievielantwort] ist, egal auf welche Checkbox man clickt.
Ich frage mich gerade, was du eigentlich willst. Denn so wie das hier gemacht wird, wird immer a[0][0] beim anklicken ein neuer Wert zugewiesen, und nicht etwa eine Wert "addiert" oder so. Bei checkboxen ist es nun aber so, dass man sowohl mehrere Boxen auswaehlen kann, als auch eine einmal markierte deaktivieren, was unter umstaenden dazu fuehrt, dass gar nicht markiert ist, a[0][0] aber den Wert der letzten deaktivierten checkbox annimmt. Koennte es sein, dass da ein grundsaetzlicher Denkfehler da ist, (vielleicht ist der Denkfehler ja auch bei mir!) und du vielleicht radiobuttons brauchst? Ich denke es waere das einfachste, wenn du uns mal genau erklaerst was du machen willst. Auch die Definitionen von antwort=new Array(); und a=new Array; bzw a[0]=new Array waeren nicht schlecht.
Tschau Holger
Sorry bin echt blöd..... natürlich a[0][0] isn schreibfehler und heißt a[a][b]....das isn doppelarray das natürlich vor der dowhileschleife jedesmal erhöht wird.....draussen drumherum ist noch eine dowhileschleife... sorry sorry..für eure arbeit....
muß jetzt leider los und hab keine zeit mehr den quelltext zu posten... mach ich später vielleicht
a[0][0]=antwort[k]
Hallo DarkNeo!
Ich hoffe ich kann dir helfen ..
Dein Fehler ist (wie hier schon richtig bemerkt wurde) das du in der Schleife immer denselben Arrayindex [0][0] einen Wert zuweist und ihn somit überschreibst.
Versuche es doch mal mit a[a.length]=antwort[k]
Dies ist für eindimensionale Arrays.
Dadurch wird in Jscript Automatisch ein Item mehr an das Array gehängt.
Bin selber noch Anfänger also probiers mal aus ;-)
Gruß, Spike