Struppi: label checkbox

Beitrag lesen

Also ich hab ein html dokument das so aufgebaut ist:

<input type="checkbox" name="auswahl[]" value="3" onClick="nichtalle(3)">
<input type="checkbox" name="auswahl[]" value="7" onClick="nichtalle(7)">
<input type="checkbox" name="auswahl[]" value="9" onClick="nichtalle(9)">
<input type="checkbox" name="auswahl[]" value="15" onClick="nichtalle(15)">
<input type="checkbox" name="auswahl[]" value="16" onClick="nichtalle(16)">
...
<input type="checkbox" name="alle" value="set" onClick="checking()">

Wenn du das von Anfang an gezeigt hättest... na gut lassen wir das.

sowie diesen JS code:

function checking () {
  if (document.form.alle_kontakt.checked == true)
  {
    $z = 0;
    while(document.getElementsByName("auswahl[]")[$z].checked = true)
    {
      $z++;
    }
  }
}

Warum du einerseits über die forms Collection zugrfeist und anderseits nicht auf die elements ist mir ein Rätsel. Wie gesagt elements ist Abwärts kopatibel und wesentlich schneller als getElements...
Zumal diese Funktion nach wie vor einen Fehler erzeugen müßte bei $z == 5 elements['auswahl[]'][5] undefiniert ist und demzufolge kein Eigenschaft checked hat.

function nichtalle($id) {
  if (document.getElementsByName("auswahl[]").value == $id)
  {
    alert("$id");
  }
}

Was soll das bezwecken?

die checking funktion funktioniert.

glaub ich nicht.

die nichtalle nicht. ich will mit
der funktion nichtalle den hacken aus der alle checkbox nehmen aber
nur wen der aus der ID rausgemacht wurde. wenn nicht soll geprüft
werden ob in allen auswahl[] checkboxen checked=true ist und wenn ja
der alle angekreutzt werden.

Dein Satzbau macht es schwer zu verstehen was du willst.

ich würd das ganze flexibler gestalten, falls du das mal erweiterst.
<form>
<input type="checkbox" name="auswahl[]" value="3" onclick="checking(this)">
<input type="checkbox" name="auswahl[]" value="7" onclick="checking(this)">
<input type="checkbox" name="auswahl[]" value="9" onclick="checking(this)">
<input type="checkbox" name="auswahl[]" value="15" onclick="checking(this)">
<input type="checkbox" name="auswahl[]" value="16" onclick="checking(this)">

<input type="checkbox" name="alle" value="set" onclick="checking(this, 'auswahl[]')">
</form>

<script type="text/javascript">

function checking (el, name)
{
    if(!el) return;

var alle = true;
    if(!name)
    {
        name = el.name;
        alle = el.checked && el.form.alle.checked;
    }

var box = el.form[name];
    alert('alle:' + alle + ':'+ name);
    for(var i = 0; i < box.length; i++) if(alle) box[i].checked = true;
}

</script>

Struppi.