Andreas Schneider: Nachtrag

Beitrag lesen

Hallo Anton,

Nein, ich muss doch durch die Arrayelemente loopen.

Das Problem ist nur, dass Du aus Javascript-Sicht gar kein Array hast (zumindest nicht so, wie Du dir das vorstellst), sondern der Name eines Formularelements ist ein ganz normaler String.

Jetzt hast Du zwei Möglichkeiten:

1. Du durchläüfst in einer Schleife _alle_ Formularelemente und prüfst, ob der Name
   des aktuellen Elements mit "anzahlNeu" beginnt:
   for (var i=0; i<aForm.elements.length; i++)
     if (aForm.elements[i].name.substring(0, 8) == "anzahlNeu") {
        ...
     }
   }
   (http://de.selfhtml.org/javascript/objekte/string.htm#substring) oder

2. Du schreibst serverseitig die Anzahl in eine Javascript-Variable
   var anz = <?php echo $anzahl ?>;
   (Ich weiss nicht genau, ob das so ganz korrekt ist, da ich kein PHP kann, aber
   das Prinzip sollte klar sein.)
   Dann kannst Du in deiner Funktion eine Schleife machen wie folgt:
   for (var i=0; i<anz; i++)
      var test = parseInt(aForm.elements['anzahlNeu[' + i + ']'].value);
      if (aForm.elements['anzahlNeu[' + i + ']'].value != test) {
         alert("Bitte nur Zahlen eingeben !");
         return false;
      }
      return true;
   }

So, das ist jetzt nicht getestet, aber so ungefähr sollte es gehen.

Grüße
Andreas

--
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning."
(Rich Cook)