butterbrot: HTML array durchgehen

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 ?

  1. Hallo,

    <input type="checkbox" name="list[]" value="artikel">

    [ und ] sind keine gültigen Zeichen für den Wert des Name-Attributs.

    Gruss
    shin

    1. Hmm ja mit php klappt es mit js nicht ?

    2. 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

  2. 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

    --
    Viva Colonia!
    1. 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

      --
      Wissen bedeutet zu wissen, wo es steht.
      1. 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

        1. 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

          --
          Wissen bedeutet zu wissen, wo es steht.
        2. 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

        3. 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

          --
          Viva Colonia!
    2. 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

      1. 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

        --
        Wissen bedeutet zu wissen, wo es steht.
        1. 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

          1. 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

            --
            Wissen bedeutet zu wissen, wo es steht.
  3. 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

    --
    ss:| zu:} ls:# fo:| de:] va:} ch:? sh:( n4:( rl:° br:> js:| ie:% fl:( mo:}
    http://emmanuel.dammerer.at/selfcode.html