André Mantz: viele Checkboxen auf einmal aktivieren ... wie?

Hallo,

ich habe in einem HTML-Formular eine ganze Reihe Checkboxen, welche alle das Attribut name="item" haben.

Nun möchte ich diese Checkboxen alle auf einmal ankreuzen.

Ich habe es mit folgender Schleife probiert, aber es funzt nicht:

for (var Element in document.getElementsByName('item'))
  {
   Element.checked = 1;
  }

Was mache ich falsch? Danke für Eure Hilfe.

Gruß, André

  1. Hallo

    probiers mal so...
    einfach durchlesen, dann kappierst das schon...

    <script type="text/javascript">
     counter=0;
     while(counter<document.getElementsByName('item').length) {
      counter++;
      document.getElementsByName('item')[counter-1].checked="true";
     }
    </script>

    --
    MfG aus Augschburg,
    Ferret
    1. probiers mal so...
      einfach durchlesen, dann kappierst das schon...

      <script type="text/javascript">
       counter=0;
       while(counter<document.getElementsByName('item').length) {
        counter++;
        document.getElementsByName('item')[counter-1].checked="true";
       }
      </script>

      Mal abgesehen davon, dass ich nicht verstehe warum man auf Formularelemente mit getElement zugreifen muss ist das falsch

      http://selfhtml.teamone.de/javascript/objekte/elements.htm#checked

      Und Formularelemente lassen sich so refrenzieren: http://selfhtml.teamone.de/javascript/objekte/forms.htm

      Struppi.

      1. Hallo,

        <script type="text/javascript">
         counter=0;
         while(counter<document.getElementsByName('item').length) {
          counter++;
          document.getElementsByName('item')[counter-1].checked="true";
         }
        </script>

        Mal abgesehen davon, dass ich nicht verstehe warum man auf Formularelemente mit getElement zugreifen muss ist das falsch

        hmmm ... also funktionieren tut es, warum ist es also falsch? Gefallen tut mir diese Lösung allerdings überhaupt nicht, ich finde es sehr unschön, eine zusäzliche Zählervariable zu definieren.

        Was ich immer noch nicht verstehe, warum weder das ...

        for (var Element in document.getElementsByName('item'))
           {
            Element.checked = 1;
           }

        ... noch das hier ...

        for (var Element in document.formname.checkboxname)
           {
            Element.checked = 1;
           }

        funktioniert. Eigentlich müsste doch in beiden Fällen bei jedem Schleifendurchlauf die Variable Element auf ein <input type="checkbox" name="item" ...> - Feld verweisen, oder wo ist mein Denkfehler?

        Gruß, André

        1. Hallo André Mantz

          Hallo,

          <script type="text/javascript">
           counter=0;
           while(counter<document.getElementsByName('item').length) {
            counter++;
            document.getElementsByName('item')[counter-1].checked="true";
           }
          </script>

          Mal abgesehen davon, dass ich nicht verstehe warum man auf Formularelemente mit getElement zugreifen muss ist das falsch

          hmmm ... also funktionieren tut es, warum ist es also falsch? Gefallen tut mir diese Lösung allerdings überhaupt nicht, ich finde es sehr unschön, eine zusäzliche Zählervariable zu definieren.

          Warum es falsch ist, steht auf den Seiten, die ich verlinkt hatte. (checked darf die Wert 0/1  und true/false enthalten, da oben wird aber ein string zugewiesen)

          Was ich immer noch nicht verstehe, warum weder das ...

          for (var Element in document.getElementsByName('item'))
             {
              Element.checked = 1;
             }

          ... noch das hier ...

          for (var Element in document.formname.checkboxname)
             {
              Element.checked = 1;
             }

          funktioniert. Eigentlich müsste doch in beiden Fällen bei jedem Schleifendurchlauf die Variable Element auf ein <input type="checkbox" name="item" ...> - Feld verweisen, oder wo ist mein Denkfehler?

          keine Ahnung bei mir funktioniert es. nicht funktionieren ist auch keine Fehlerbeschreibung, die erklärt, was falsch läuft, evtl. solltest du die Fehlermeldung genauer studieren (Mozilla hilft dir da deutlich besser als der IE).

          Hier ein Beispiel:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <html>
          <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <title>Testcase</title>
          <script type="text/javascript">
          function test()
          {
               var f = document.forms[0].elements['item'];
               for(var e in f)
               {
                  alert(e);
               }
          }
          </script>
          </head>
          <body onload="test();">
          <form>

          <input type="checkbox" name="item">
          <input type="checkbox" name="item">
          <input type="checkbox" name="item">
          <input type="checkbox" name="item">
          <input type="checkbox" name="item">
          <input type="checkbox" name="item">
          <input type="checkbox" name="item">

          </form>
          </body>
          </html>

          Struppi.