Cheatah: Checkbox-Array vor Formular absenden prüfen

Beitrag lesen

Hi,

Allerdings scheint keine der Varianten zu funktionieren. Oder bin ich nur zu blöd!? Scheinbar.

scheinbar oder anscheinend?

Richtig ist, dass diese Variante:

if (document.getElementsByName('checkboxen[]')[0].checked == true) {

je nach Browser zu Problemen führen kann. Ebenso wie diese:

if (document.getElementsById('checkbox0').checked == true) {

setzt sie auf DOM-Methoden, die ich aufgrund der Existenz des sehr viel spezielleren Formular-Objektmodells, welches exakt das ist, was Du hier brauchst, nicht verwenden würde.

if (document.formular.checkboxen[0].checked == true) {

Dies hier kann natürlich nicht funktionieren, weil Du nirgendwo ein Formularelement namens "checkboxen" vorliegen hast, geschweige denn mehrere, so dass sich ein Array-Index ergeben könnte. Deine Elemente heißen "checkboxen[]", also musst Du auf genau diese zugreifen.

Die Defintion der Checkboxen als Array - nämlich so name="checkboxen[]"

Der Name definiert für JavaScript absolut nicht das geringste als Array. Das geschieht durch das mehrfache Vorkommen des selben Namens, also beispielsweise durch zwei <input name="checkboxen"/>.

brauche ich, um die dann besser in meinem PHP-Skript auszuwerten.

Dieser PHP-Bug ist bekannt.

Oder greift Javascript da gar nicht, wenn ich das wie oben definiere?

JavaScript interessiert sich nicht die Bohne für irgend etwas, was PHP benötigt. Nutze die verschiedenen Arten, auf Formularelemente zuzugreifen.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes