Addieren / Subtrahieren durch Checkbox aktivieren/deaktivieren

pasciii

Grünschnabel
Hallo zusammen

Ich habe eine Liste mit Modulen, vor jedem Modul eine Checkbox mit dem hinterlegten Preis.
Aktiviere ich die Checkbox, soll es mir den Preis zu einer variablen hinzuzählen, was auch gut funktioniert, jedoch deaktiviere ich eine vorher aktivierte soll es mir diesen preis wieder wegzählen...

mein nicht ganz funktionstüchtiger code:

Code:
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
  preisM = 0
     function math(plus) 
     {
       if(document.Fmath.pmodul.checked) 
         {
         preisM = preisM - plus
         }
       preisM = preisM + plus

     document.Fmath.pmodul.value=preisM
     }
 //-->
 </SCRIPT>

Kann mir da jemand weiterhelfen

thx zum voraus...
 
Hi,

wenn ich dich richtig verstanden habe, ist der jeweilige Preis im value-Attribut der Checkbox
hinterlegt. Wird die Box aktiviert, soll der Wert addiert, beim Deaktivieren subtrahiert werden.

Bei deiner Lösung überschreibst du zum einen den Wert in der Checkbox, so dass sich sein
Inhalt ändern kann. Zum anderen prüfst du in der if-Bedingung, ob die Checkbox gesetzt ist und
damit den Fall, dass eigentlich addiert werden soll. Die nachstehende Anweisung zum Addieren
wird immer erreicht, also auch wenn subtrahiert werden soll.

Mein Lösungsvorschlag:
Code:
<script type="text/javascript">
<!--

preisM = 0
function math(objCheckbox){
  // Falls die Checkbox deaktiviert wurde
  if(objCheckbox.checked == false){
    // Subtrahieren
    preisM = preisM - Number(objCheckbox.value);
  }else{
    // Addieren
    preisM = preisM + Number(objCheckbox.value);
  }
  // Neu berechneten Preis in Textfeld ausgeben
  document.Fmath.txtOut.value = preisM;
}

// -->
</script>
Die Funktion erwartet das aktive Checkboxobjekt als Parameter. Entsprechend seinem Zustand
(checked/unchecked) addiert/subtrahiert es den Wert, der im value-Attribut steht.
Anschliessend wird der Wert in einem Textfeld ausgegeben.

Der zugehörige HTML-Code könnte zum Beispiel folgendermassen aussehen:
HTML:
<form name="Fmath" action="" method="" target="">
    <div><input type="checkbox" onclick="math(this);" name="pmodul" value="30" />30</div>
    <div><input type="checkbox" onclick="math(this);" name="pmodul" value="40" />40</div>
    <div><input type="checkbox" onclick="math(this);" name="pmodul" value="50" />50</div>
    <div><input type="text" name="txtOut" value="0" /></div>
</form>
Ciao
Quaese
 

Neue Beiträge

Zurück