ich möchte gerne Textfelder in einen Formular mit einen Array ausstatten da ich das Formular per PHP erstelle. Die Anzahl der Textfelder ist dynamisch. Ein Javascript soll das erste und das zweite Textfeld in einer Zeile zusammen Rechnen und im letzten Textfeld in der Zeile ausgeben. Wenn ich das ohne [], und alle anders bennen, klappt das auch.
Das ist etwas falsch formuliert du möchtest gerne reservierte Zeichen im Namen von Formularfelder verwenden, dass ist eine Frage die jeden Monat x-mal hier gestellt wird.
Das Problem dass du hast, ist das du den Index von PHP da noch einbaust, das macht die Sache extrem unhandlich um diese Namen JS zu benutzen.
<html>
<script language="JavaScript" type="text/JavaScript" >
Da fehlt das head Tag und der Doctype, das language Attribut ist unerwünscht.
<table border="0" cellspacing="0" cellpadding="0">
Nur als Tipp, für dein Problem ist die Tabelle unwichtig und macht den Code für die die dir helfen sollen unleserlicher.
<input type="text" name="meinFeld[1][1]"
onChange="numerisch(this); rechne(this,meinFeld[1][1],meinFeld[1][2],meinFeld[1][3])">
Im Prinzip ist dein Problem sogar nur, dass du hier undefinierte Werte als Parameter übergibst (hast du mal in die JS Konsole von z.b. Firefox geschaut? meinFeld[x][y] gibt es nicht)
Ich würde auf dieses Konstrukt verzichten, aber wenn du unbedingt musst:
Entweder so:
<input type="text" name="meinFeld[1][1]"
onChange="numerisch(this); rechne(this,this.form['meinFeld[1][1]'],this.form['meinFeld[1][2]'],this.form['meinFeld[1][3]'])">
oder du übergibst die Namen als String und baust deine Funktion entsprechend um:
<input type="text" name="meinFeld[1][1]"
onChange="numerisch(this); rechne(this,'meinFeld[1][1]','meinFeld[1][2]','meinFeld[1][3]')">
function rechne(feld, eingabe1, eingabe2, ausgabe)
{
var eingabe_feld1 = feld.form[eingabe1];
var eingabe_feld2 = feld.form[eingabe2];
var ausgabe_feld = feld.form[ausgabe];
}
Struppi.
Javascript ist toll (Perl auch!)