Wie kann ich Summen von verschiedenen Checkboxen berechnen?
- Erstellen Sie ein Quickmode Formular
- Erstellen Sie für dieses Tutorial 7 verschiedene Checkboxen
- Vergeben Sie beliebige Titel an die Checkboxen. Versuchen Sie die Namen generell einfach zu halten da diese in den Berechnungsscripten immer wieder gebraucht werden. In diesem Beispiel hier haben wir folgende Namen benutzt d11, d12, d13, d14, d16, d18 und d1o (im letzten Namen handelt es sich um den klein Buchstaben o und nicht um die Nummer 0).
- Als Inhalt geben Sie nun die gewünschten Werte an die berechnet werden sollen. Bitte beachten Sie das die Dezimalstellen hier mit einem Punkt getrennt werden müssen und nicht wie im deutschen üblich mit einem Komma. Die Werte in diesem Beispiel sind 35.00, 35.00, 35.00, 35.00, 45.00, 55.00, und 70.00.
- Öffnen Sie nun eine Checkbox nach der anderen und erstellen den Jeweiligen Actionscript Event. Dazu gehen Sie in den "Erweiter" Tab Ihrer Checkbox -> Actionscript-> Custom und als Aktion wählen Sie "click", und kopieren folgenden Code in das Fenster:
function ff_d11_action(element,action) { ff_amountowing_action(element,action); }
Bitte stellen Sie sicher das der Name der Funktion der jeweiligen Checkbox entspricht, also für d11 wie obiger Code und für d12:function ff_d12_action(element,action) { ff_amountowing_action(element,action); }
und so weiter.
Denken Sie daran nach jeder Checkbox zu speichern bevor Sie zur nächsten wechseln.
- Erstellen Sie nun ein Textfeld mit dem Namen "amountowing" und dem Inhalt 0.
- In dem erweitert Tab des Textfelds schalten Sie dann "nur lesend" ein so dass der berechnete Wert nicht mehr geändert werden kann. Im Actionscript Bereich des Textelements wälen Sie dann wieder "custom" aus (eine besondere Aktion ist hier nicht erforderlich).
- In das Fenster kopieren Sie nun folgenden Code:
function ff_amountowing_action(element,action) { ff_getElementByName('amountowing').value = 0; if (ff_getElementByName('d11').checked) { ff_getElementByName('amountowing').value = Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d11').value); } if (ff_getElementByName('d12').checked) { ff_getElementByName('amountowing').value = Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d12').value); } if (ff_getElementByName('d13').checked) { ff_getElementByName('amountowing').value = Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d13').value); } if (ff_getElementByName('d14').checked) { ff_getElementByName('amountowing').value = Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d14').value); } if (ff_getElementByName('d16').checked) { ff_getElementByName('amountowing').value = Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d16').value); } if (ff_getElementByName('d18').checked) { ff_getElementByName('amountowing').value = Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d18').value); } if (ff_getElementByName('d1o').checked) { ff_getElementByName('amountowing').value = Number(ff_getElementByName('amountowing').value) + Number(ff_getElementByName('d1o').value); } }
Jetzt noch das ganze Formular speichern und schon sollte es funktionieren und in amountowing die Jeweilige Summe angezeigt werden. Wenn die Berechnung nicht funktioniert kontrollieren Sie bitte nochmals die Elementnamen.
Thanks to DavidLGCrawford for this solution!