Linuchs: radio button - was passiert bei onchange?

Beitrag lesen

Hallo,

wenn ich auf eine Gruppe Radioknöpfe mit demselben Namen klicke, scheint das onchange Event zu feuern, die Funktion wird aufgerufen. Aber ich kann nicht feststellen, welcher Wert 0, 1 oder 2 jetzt gültig ist.

Es geht um die Aktualisierung eines Zählers beim Klicken. Gezählt werden Wünsche. Priorität 1 ist ein Wunsch, Priorität 2 ist ein Wunsch, die 0 ist kein Wunsch. Sie dient nur der Abwähl-Möglichkeit, weil man sonst 1 oder 2 nie wieder los wird ;-)

<script>
function zaehleWuensche(obj) {
  // wird aufgerufen, wenn ein Radioknopf geaendert wurde
  // wird aufgerufen, wenn eine Checkbox geaendert wurde
  if ( obj.value > 0 || obj.checked ) anz_wuensche++;
  else anz_wuensche--;
//document.getElementById("anzahl_checked_pos").innerHTML = anz_wuensche;
  document.getElementById("anzahl_checked_pos_submit").innerHTML = anz_wuensche;
}
</script>

<input type=radio name="V01" value=0 onChange="zaehleWuensche(this)" >0
<input type=radio name="V01" value=1 onChange="zaehleWuensche(this)" >1
<input type=radio name="V01" value=2 onChange="zaehleWuensche(this)" checked>2

Bei den Checkboxen ist es einfach. Bei onchange schaue ich, wie jetzt der Wert ist. Bei checked addiere ich 1, bei !checked subtrahiere ich 1.

Bei den radio's habe ich vermutet, dass jeder einzelne das onchange Event feuert. Aber auch dann zähle ich ja falsch, wenn von 1 nach 2 oder von 2 nach 1 gewechselt wird. Weil ich den alten Stand nicht kenne.

Linuchs