Schleife für elements.length
Dirk Wendt
- javascript
0 Tom0 Struppi0 Andreas Schneider
Hallo,
ich habe folgendes Problem.
Diese Schleife funktioniert, wenn ich mindestens 2 Elemente habe.
Bei einem Element ist elements.length = undefined
for (var i = 0; i < welche_form.elements["auswahl[]"].length; i++)
in dieser Schleife frage ich ob das Element checked ist, aber wenn nur eines da ist übergeht er diese Schleife.
Was kann ich tun?
Besten Dank
Dirk
Hello,
Bei einem Element ist elements.length = undefined
for (var i = 0; i < welche_form.elements["auswahl[]"].length; i++)
Wann und wie wird denn die Code-Zeile aktiv? Steckt die in einer Funktion?
Liebe Grüße aus http://www.braunschweig.de
Tom
Wann und wie wird denn die Code-Zeile aktiv? Steckt die in einer Funktion?
Diese Zeile steht in einer Funktion und diese Funktion wird mittels dem onsubmit event der Form ausgelöst.
onSubmit="return chkPacketeingabe(this)
function chkPacketeingabe(welche_form) {
var auswlength = welche_form.elements["auswahl[]"].length;
alert(welche_form.elements["auswahl[]"].length);
// HIER BEI EINEM ELEMENT = undefined
for (var i = 0; i < auswlength; i++) {
if(ausw[i].checked == true) {
....
}
}
}
, wenn ich mindestens 2 Elemente habe.
Bei einem Element ist elements.length = undefined
for (var i = 0; i < welche_form.elements["auswahl[]"].length; i++)
in dieser Schleife frage ich ob das Element checked ist, aber wenn nur eines da ist übergeht er diese Schleife.
Was kann ich tun?
Naja, das Problem ist, für welchen Typ verwendest du das?
Wenn das keine Radiogroup ist, sollten sie nicht den gleichen Namen haben, aber auch nicht nur eins vorhanden sein.
Struppi.
für Checkboxen und den gleichen Namen braue ich für das Array in PHP.
mit mehr als eines funktioniert es ja wunderbar und wenn nur eine Checkbox da ist müsste sie doch auch ein Element sein und dann ist ja auch der Name nur einmal vorhanden.
Gruß Dirk
Hallo Dirk Wendt,
Diese Schleife funktioniert, wenn ich mindestens 2 Elemente habe.
Bei einem Element ist elements.length = undefined
In diesem Fall hast Du kein Array.
Prüfe also, ob 0, 1 oder mehrere Elemente dieses Namens vorhanden sind:
if (welche_form.elements["auswahl[]"]) { // Mindestens ein Element vorhanden
if (welche_form.elements["auswahl[]"].length) { // Mehr als eins
// hier die Schleife
}
else { // genau eins
// Aktion für das eine Element
}
}
So ungefähr sollte es gehen.
Grüße
Andreas