formularwerte addieren mit javascript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • formularwerte addieren mit javascript

    Hallo ich habe hier ein Script. Leider werden, wenn man die zwei ersten Checkboxen anklickt, gleich alle Werte addiert. Wo liegt da der Fehler.

    Außerdem möchte ich, dass, wenn man nur ein oder zwei Checkboxen anklickt, nur die Summe der angeklickten Checkboxen ausgegeben wird.

    Und drittens möchte ich, dass, wenn man die Checkbox wieder löscht, die Werte wird abgezogen werden.

    Kann mir da jemand einen Tipp geben, wie ich das hinbekomme.

    Hier das Script:
    <script language="JavaScript1.5" type="text/javascript">
    function multi() {
    zahl1 = parseInt(document.add.eingabe.value);
    zahl2 = parseInt(document.add.eingabe2.value);
    zahl3 = parseInt(document.add.eingabe3.value);
    var ergebnis = zahl1 + zahl2 + zahl3
    document.add.ausgabe.value=ergebnis}
    </script>

    </head>
    <body>

    <form name="add" action="werteaddierenjs.html" method="POST">
    <input type="checkbox" name="eingabe" value="2" onchange="multi()"><br>
    <input type="checkbox" name="eingabe2" value="5" onchange="multi()"><br>
    <input type="checkbox" name="eingabe3" value="4" onchange="multi()"><br>
    <input type="text" name="ausgabe" value="0" size="9"></form>

    </body>

  • #2
    Du darfst die Zahl-Variablen nur auf den Wert setzen, wenn die dazugehörende Checkbox auch "gecheckt" ist.

    Gruß,
    ministry
    ich glaube

    Kommentar


    • #3
      http://de.selfhtml.org/navigation/su...nfrage=checked
      Zuletzt geändert von RanzigeMilch; 07.07.2006, 10:35.
      Die Milch bleibt ranzig!

      Kommentar


      • #4
        Suche nach: ischecked

        Kein Treffer.

        Suche abgeschlossen


        ich glaube

        Kommentar


        • #5
          hu hatte ich ja gar net gesehn...

          war ja eh nur als denkanstoß ala "da such ma nach entsprechenden wörtern auf der seite" gedacht
          Die Milch bleibt ranzig!

          Kommentar


          • #6
            ok hab das passende script gefunden nur noch eine frage

            Statt der Ausgabe per id möchte ich die Ausgabe innerhalb eines Formularfeldes realisieren. Kann mir jemand sagen wie das geht?

            <script>
            var Zutaten = new Object();
            function toggleZutat(checkbox) {
            if(checkbox.checked) {
            Zutaten[checkbox.name] = parseFloat(checkbox.value);
            }
            else {
            Zutaten[checkbox.name] = null;
            }
            showZutaten();
            }

            function showZutaten() {
            var zutat;
            var price = 0.0;
            var arr = new Array();
            for(Zutat in Zutaten) {
            if(Zutaten[Zutat]) {
            arr[arr.length] = Zutat;
            price+=Zutaten[Zutat];
            }
            }

            if(arr.length>0) {
            document.getElementById("Zutaten").innerHTML = "Ausgew&auml;hlte Zutaten: (&euro; " + price + ")";
            }
            else {
            document.getElementById("Zutaten").innerHTML = "Keine Zutaten ausgew&auml;hlt"
            }
            }

            </script>

            Kommentar


            • #7
              habs geschafft

              so lautet die Lösung

              <script>
              var Zutaten = new Object();
              function toggleZutat(checkbox) {
              if(checkbox.checked) {
              Zutaten[checkbox.name] = parseFloat(checkbox.value);
              }
              else {
              Zutaten[checkbox.name] = null;
              }
              showZutaten();
              }

              function showZutaten() {
              var zutat;
              var price = 0.0;
              var arr = new Array();
              for(Zutat in Zutaten) {
              if(Zutaten[Zutat]) {
              arr[arr.length] = Zutat;
              price+=Zutaten[Zutat];
              }
              }

              if(arr.length>0) {
              document.getElementsByName("ausgabe")[0].value = price;
              }
              else {
              document.getElementsByName("ausgabe")[0].value = "0"
              }
              }

              </script>

              Kommentar

              Lädt...
              X