Hi,
Da der Aufbau dynamisch in einer Schleife erfolgt, haben auch alle den gleichen Namen und der Zugriff über document.Formularname.Elementname funktioniert auch einwandfrei, sobald ich mindestens zwei Elemente habe. Habe ich nur eine checkbox, da meine Recordset nur ein Datensatz enthält, wird ja auch kein Array angelegt. Meine Frage ist jetzt ob ich irgendwie das Anlegen des Arrays auch mit nur einem Element erzwingen kann.
var meineCheckBoxen = document.Formularname.Elementname.length ?
document.Formularname.Elementname : [document.Formularname.Elementname];
Wenn du nur eine Checkbox hast, dann ist die length-Eigenschaft von document.Formularname.Elementname "undefined", weil es vom Typ HTMLInputElement ist. Dann wird also ein Array mit diesem einen Element als Inhalt angelegt, und der Variablen meineCheckBoxen zugewiesen.
Andernfalls hat document.Formularname.Elementname eine length-Eigenschaft - dann wird meineCheckBoxen direkt die Referenz auf die NodeList zugewiesen.
In beiden Faellen hast du also anschliessend in meineCheckBoxen die Referenz auf etwas, das eine length-Eigenschaft hat, und sich per for-Schleife durchlaufen laesst. (Fuer die allermeisten Anwedungsfaelle macht es keinen relevanten Unterschied, dass man einmal auf einem NodeList-Objekt arbeitet, und das andere "nur" auf einem Array. Das da trotzdem ein Unterschied ist, sollte man trotzdem im Hinterkopf behalten.)
MfG ChrisB
„This is the author's opinion, not necessarily that of Starbucks.“