Fehler bei Elementnamen mit [] ... Hilfe
André Mantz
- javascript
Hallo zusammen,
ich habe folgendes Formular:
<form name="test" action="test.php" method="post">
<input type="checkbox" name="item[]" value="1">
<input type="checkbox" name="item[]" value="2">
<input type="checkbox" name="item[]" value="3">
...
</form>
Die Checkboxen haben absichtlich den gleichen Namen mit eckigen Klammern, da das PHP-Script welches das Formular verarbeitet die angekreuzten Checkboxen zwingend als Array erwartet.
Wenn ich nun die Eigenschaften der Checkboxen in einer JS-Schleife abfragen/bearbeiten will, so kann ich die Anzahl der Checkboxen mit
document.forms[0].elements['item[]'].length
abfragen. Funktioniert auch, mit einer Ausnahme: ist nur eine Checkbox vorhanden so liefert der o.g. Ausdruck 'undefined' ... ARGH
Was mache ich falsch? Danke für eure Hilfe.
Gruß, André
Moin!
Wenn ich nun die Eigenschaften der Checkboxen in einer JS-Schleife abfragen/bearbeiten will, so kann ich die Anzahl der Checkboxen mit
document.forms[0].elements['item[]'].length
abfragen. Funktioniert auch, mit einer Ausnahme: ist nur eine Checkbox vorhanden so liefert der o.g. Ausdruck 'undefined' ... ARGH
Wenn nur ein einziges Element gleichen Namens vorhanden ist, wird von Javascript kein Array gebildet. Folglich mußt du eine Fallunterscheidung durchführen, die prüft, ob du eine oder mehrere Elemente hast, bzw. ob ein Array vorliegt oder nicht.
- Sven Rautenberg
Nochmal hallo
Wenn nur ein einziges Element gleichen Namens vorhanden ist, wird von Javascript kein Array gebildet.
und erstmal danke für die schnelle Antwort. Sowas in der Art hatte ich mir fast gedacht.
Folglich mußt du eine Fallunterscheidung durchführen, die prüft, ob du eine oder mehrere Elemente hast, bzw. ob ein Array vorliegt oder nicht.
Da allerdings stehe ich leider immer noch etwas auf dem Schlauch. Ich hab nix passendes in SELFHTML gefunden. Gibt´s in JS sowas ähnliches wie das PHP - is_array() um herauszufinden ob ein Objekt ein Array ist?
Gruß, André
Da allerdings stehe ich leider immer noch etwas auf dem Schlauch. Ich hab nix passendes in SELFHTML gefunden. Gibt´s in JS sowas ähnliches wie das PHP - is_array() um herauszufinden ob ein Objekt ein Array ist?
Hab´s gerade selbst herausgefunden. Ich frage einfach mit
if (document.forms[0].elements['item[]'].length)
ab. Das ergibt ja undefined wenn nur eine Checkbox da ist und somit wird der else-Zweig dann ausgeführt.
Gruß, André