Flo: alle checkboxen makieren

Hallo zusammen,

folgendes javascript benutze ich um auf einer
Seite alle checkboxen eines namens zu merkieren:

function ALLChoice(field, i)
  {
  var checkcount = 0;
  var loop;

for (loop = 1; loop < field.length; loop++)
    {
    if (i == 0)
      {
      field[loop].checked = field[0].checked;
      }
    else
      {
      if (field[loop].checked)
        {
        checkcount++;
        }
      field[0].checked = (checkcount == field.length-1);
      }
    }
  }
// -->
</script>

Über einer vielzahl von checkboxen des namens "auswahl" steht eine
Master-Chackbox:

<input type="checkbox" name="auswahl" value="10" onclick="ALLChoice(document.formular_10.auswahl, 0);">

Diese Checkbox sorgt dafür das alle checkboxen mit em namen "auswahl" bei anklciken der Master-Checkbox angecheckt werden.

Leider werden auch alle de-markiert, wenn ich den haken aus der master-checkbox nehme.

Wie kann ich das Skript modifizieren um das zu verhindern?
(Bin leider kein Held in Javascript).

Vielen vielen Dank schon einmal für Eure Hilfe!

Flo

  1. hi,

    Leider werden auch alle de-markiert, wenn ich den haken aus der master-checkbox nehme.

    Wie kann ich das Skript modifizieren um das zu verhindern?

    sorge doch einfach dafür, dass die funktion zunächst überprüft, ob die checkbox, die die funktion aufruft, nun gerade markiert ist oder nicht. wenn ja, lasse sie mit dem markieren aller anderen boxen fortfahren; wenn nein, beende die funktionsausführung einfach an dieser stelle.

    (Bin leider kein Held in Javascript).

    dazu ist auch kein heldentum erforderlich, sondern lediglich ein wenig beschäftigung mit den grundlagen und dem javascript-kapitel von selfhtml.

    gruß,
    wahsaga

    --
    [ Hier könnte Ihre Werbung stehen! ]
    1. sorge doch einfach dafür, dass die funktion zunächst überprüft, ob die checkbox, die die funktion aufruft, nun gerade markiert ist oder nicht. wenn ja, lasse sie mit dem markieren aller anderen boxen fortfahren; wenn nein, beende die funktionsausführung einfach an dieser stelle.
      dazu ist auch kein heldentum erforderlich, sondern lediglich ein wenig beschäftigung mit den grundlagen und dem javascript-kapitel von selfhtml.

      gruß,
      wahsaga

      Vielen Dank. KLingt nahc der besten Lösung.
      Kann mir jemand die if-Bedingung so in aller Schnelle
      durchgeben.
      In Javascript arbeite ich sonst gar nicht und müsste mir
      daher eine ganze Menge Grundlagfen einverleiben.

      Vielen vielen Dank,

      Der Flo

  2. Hi auch,

    in dieser Zeile:

    field[loop].checked = field[0].checked;

    weist Du der jeweiligen Box den Wert der Master-Box zu. Da field[0].checked den Wert der Master-Box beschreibt und entweder true oder false ist, sind alle andern entsprechend auch true oder false.

    Du mußt also einfach eine weitere Sicherheitsabfrage einbauen und die obige Zeile nur ausführen, wenn die Master-Box checked ist. Etwas in dieser Art;

    if (field[0].checked == true){
      field[loop].checked = true;
    }

    Hoffe das hilft
    MfG