HTML array durchgehen
butterbrot
- javascript
Juden Abend, ich habe folgendes Problem:
eine reie von checkboxe die alle den gleichen namen haben die anzahl der checkboxen ist variabel. Das sieht in etwa so aus
<input type="checkbox" name="list[]" value="artikel"> und davon halt ganz viele mit unterschiedlichem value. Es ist wichtig das die durch ein solches array gebildet werden da ich sie später mit php auslese. Jetzt wollte ich eine Funktion schreiben in Javaskript die alle checkboxen markiert. Ich dachte an sowas
function setCheckboxes(anzahl)
{
i = 0;
while(i <= anzahl)
{
document.lists.list[i].checked = true;
i++;
}
} wobei der funktion die anzahl der checkboxen übergeben werden der name des formulars ist lists. Aber das funktioniert alles nicht.
Jemand ne ahnung ?
Hallo,
<input type="checkbox" name="list[]" value="artikel">
[ und ] sind keine gültigen Zeichen für den Wert des Name-Attributs.
Gruss
shin
Hmm ja mit php klappt es mit js nicht ?
Hallo,
[ und ] sind keine gültigen Zeichen für den Wert des Name-Attributs.
Du irrst.
http://www.w3.org/TR/html401/interact/forms.html#adef-name-INPUT
Mathias
Hallo,
Jemand ne ahnung ?
Ich würde es mit getElementsByTagName machen:
var felder = document.getElementsByTagName('input');
for (var i = 0; i < felder.length; i++) {
if (felder[i].type == 'checkbox')
felder[i].checked = 'checked';
}
MfG, Mülli
Hallo Tobias.
Ich würde es mit getElementsByTagName machen:
Warum so umständlich?
for (var i = 0; i < felder.length; i++) {
if (felder[i].type == 'checkbox')
felder[i].checked = 'checked';
}
for(var a=0;a<document.lists.list.length;a++) {
document.lists.list[a].checked == true;
}
Freundschaft!
Siechfred
Hallo,
for(var a=0;a<document.lists.list.length;a++) {
document.lists.list[a].checked == true;
}
Die Frage war doch gerade, wie es ohne document.lists lösbar ist (weil es document.lists nicht gibt)?
Aber umständlich ist es, getElementsByTagName zu bemühen, wo es document.forms.formularname.elements usw. gibt.
Im Übrigen sollte das:
felder[i].checked = 'checked';
felder[i].checked = true; lauten.
Mathias
Hallo molily.
Die Frage war doch gerade, wie es ohne document.lists lösbar ist (weil es document.lists nicht gibt)?
Ja, ich habe die "[]" übersehen. Mea culpa.
Im Übrigen sollte das:
felder[i].checked = 'checked';
felder[i].checked = true; lauten.
Schuldig :)
Freundschaft!
Siechfred
for(var a=0;a<document.lists.list.length;a++) {
document.lists.list[a].checked == true;
}Die Frage war doch gerade, wie es ohne document.lists lösbar ist (weil es document.lists nicht gibt)?
Ah, Groschen gefallen. document.lists meint wahrscheinlich document.forms.lists. Also etwa:
for (var i=0; i<document.forms.lists.elements.length; i++) {
if (document.forms.lists.elements[i].type == 'checkbox')
document.forms.lists.elements[i].checked = true;
}
Mathias
Hallo,
Aber umständlich ist es, getElementsByTagName zu bemühen, wo es document.forms.formularname.elements usw. gibt.
Ich merke gerade, dass ich eindeutig DHTML-geschädigt bin. ;-)
Im Übrigen sollte das:
felder[i].checked = 'checked';
felder[i].checked = true; lauten.
Hehe. Hast natürlich recht. Fällt auch unter die DHTML-Schädigung.
Habe das grad mal spasseshalber in Mozilla, Opera und IE ausprobiert und es funktioniert interessanterweise. ;-)
MfG, Mülli
Hallo,
Ich würde es mit getElementsByTagName machen
Wenn schon auf die Art, dann bietet sich eher folgendes an:
var felder = document.getElementsByName('list[]');
for (var i = 0; i < felder.length; i++) {
felder[i].checked = 'checked';
}
Natürlich führen viele Wege nach Rom.
Mathias
Hallo molily.
Ich würde es mit getElementsByTagName machen
Wenn schon auf die Art, dann bietet sich eher folgendes an:
var felder = document.getElementsByName('list[]');
Ähm, ich will ja nicht nerven, aber mit getElementsByName() scheint so manche der unzähligen IE-Versionen Probleme zu haben.
Natürlich führen viele Wege nach Rom.
Fuck ALL ;)
Freundschaft!
Siechfred
Hallo,
Ähm, ich will ja nicht nerven, aber mit getElementsByName() scheint so manche der unzähligen IE-Versionen Probleme zu haben.
Welche?
Gruß, Jürgen
Hallo Jürgen.
Ähm, ich will ja nicht nerven, aber mit getElementsByName() scheint so manche der unzähligen IE-Versionen Probleme zu haben.
Welche?
Ich scheine hier eine recht eigensinnige IE-Installation zu haben (Windows 98 SE, IE 6.0.2600.0000IC), die mir schon den ein oder anderen Streich gespielt hat, u.a. auch mit getElementsByName(). Frag mich bitte nicht, warum :)
Freundschaft!
Siechfred
hallö ins forum,
moin butterbrot,
abgesehen von den anderen antworten auf faq, die du missachtest, gefällt mir das hier besonders wenig:
Juden Abend
ich finde das weder besonders originell noch besonders zutreffend.
danke für künftige unterlasung!
willie