Ich möchte gern eine Webseite erstellen mit Fragen deren Antworten man in Felder eingibt. Ich sag gleich worums genau geht, damits klarer wird: Ich mache eine Tabelle in der in jeder Zeile ein Nomen angegeben ist. Vor das Nomen soll ein Feld kommen für den artikel (also der die das, je nachdem was zum Nomen passt) und nach dem Nomen ein Feld in das man das Plural eingeben kann. Die Loesungen sind in einem Array gespeichert, und nach jedem Feld hat es einen Knopf mit dem man die Loesung im entsprechenden Feld anzeigen lassen kann.
Ich muss die Lösungen für die Artikel und die Lösungen für die Pluralformen in separaten Arrays haben, (weil ich sie gleichmässig durcheinander mischeln will. Ausser jemand hat einen Vorschlag wie ich jeweils zwei Objekte des gleichen Arrays zusammen lassen kann, siehe thread "Zufallsgenerator")
Jedenfalls, wenn ich den ersten "Zeige Lösung"-Knopf einer Zeile druecke, erscheint die Lösung richtig im ersten Feld. Wenn ich aber den zweiten Knopf drücke, dann erscheint die zweite Lösung im ersten Feld, statt im zweiten. Wie kann ich also zwei Felder auf der gleichen Zeile haben, die beide unterschiedliche Lösungen haben, und zwei Knöpfe, die je eine richtige Lösung ins richtige Feld tun?
Hier ist die Funktion die ich benutze. Show() wird aufgerufen wenn man auf den ersten Knopf drückt, schreibt also die Lösung (aus dem Array "wert") ins erste Feld:
(Danach springt der Fokus auf ein anderes Feld. Das macht er damit eine Funktion aufgerufen wird die die Lösung erkennt, das ist hier aber nicht so relevant.)
function show(i){
var a = i;
document.forms[0].elements[a].value=wert;
document.forms[0].elements[a].focus();
document.forms[0].elements[a+1].focus();
}
Beim zweiten Feld versuchte ich die Funktion einfach etwas abzuändern, indem ich das Programm auf ein anderes array (wert2) zugreifen lasse.
function show2(i){
var a = i;
document.forms[0].elements[a].value=wert2;
document.forms[0].elements[a].focus();
document.forms[0].elements[a+1].focus();
}
Und so sieht eine Zeile auf meiner Seite aus: (die Funktion aus() korrigiert den Wert)
<tr><td><INPUT onblur=aus(0); name=T1 size=3> Nomen </td><td><IMG onclick=show(0) src="show.GIF"></td><td>Plural: <INPUT onblur=aus2(0); name=T1 size=6> </td><td><IMG onclick=show2(0) src="show.GIF"></td></tr>
Aber wie gesagt: die Lösung wird auch wieder ins erste Feld geschrieben. Es hat wahrscheinlich etwas damit zu tun dass i bei beiden gleich ist (im ersten Feld kommt das erste element vom "wert"-array rein, im zweiten das erste element von "wert2")
Ich glaube auch, dass ich nicht so ganz kapiere wie man genau definiert welches Feld gement ist, mit document.forms[0].elements[a] und so.