Stefan: Zahlen in Formularen

Hallo
ich biete dem Besucher an, in ein Formular mit mehreren Eingabefeldern verschiedene Zahlen zu schreiben. Diese sollen dann mit JavaScript live zusammengerechnet werden (das Ergebnis wird im Sekunden-Takt aktualisiert). Das funktionier aber nicht, da JavaScript die Benutzereingaben als String erkennt. Wie kann ich das verhindern?

Vielen Dank für eure Lösungen
Stefan

  1. Hallo Stefan,

    Das funktionier aber nicht, da JavaScript die Benutzereingaben als String erkennt. Wie kann ich das verhindern?

    Mit parseInt(string) bzw. parseFloat(string).

    MfG, Thomas

    1. Vielen Dank Thomas,

      leider kann ich mit:

      parseInt(string) bzw. parseFloat(string).

      nicht viel anfangen.
      Kann mir das jemand genauer erklären?

      Viele Grüße
      Stefan

        1. Hallo,
          auch mit eurer Hilfe geht es bislang nicht. So schreib ich hier mal das ganze Skript:

          <script language="JavaScript">
          var Zahl = 0 ;
          function berechne(){
            var fash = document.formular.fashion.value;
            var elec = document.formular.electronics.value;
            var books = document.formular.books;
            var hobbies = document.formular.hobbies;
            var other = document.formular.other;
            var Zahl = parseInt(elec) + parseInt(fash) + parseInt(books) + parseInt(hobbies) + parseInt(other);
            document.formular.gesamt.value = Zahl ;

          }
          aktiv = window.setTimeout("berechne()",1000);
          </script>

          Was ist daran falsch?

          Ich hoffe jemand kannn mir helfen.
          Mit freundlichen Güßen
          Stefan

          1. Hallo Stefan

            var books = document.formular.books;
              var hobbies = document.formular.hobbies;
              var other = document.formular.other;

            Das hier sind keine Werte, sondern hier werden nur die Formularelemente angesprochen. Im allgemeinen kriegst du dann [object] als Ergebnis.

            also

            var books = document.formular.books.value;
              var hobbies = document.formular.hobbies.value;
              var other = document.formular.other.value;

            und gleich noch ein Tipp. Prüfe vorher, ab die Ergebnisse überhaupt gültige Zahlen sind.

            Viele Grüße

            Antje

            1. Richtig, Eingabefeld-Inhalte immer mit .value ansprechen.

              Zur Zahlenumwandlung kannst Du z. B. folgende Funktion benutzen:

              function num(string,ganzzahl) // Wandelt einen String in eine Zahl um
               // Parameter ganzzahl kann weggelassen werden. Sonst wenn true: ganze Zahlen erzeugen
              {
               string = string.replace(",",".") // Komma zu Punkt umwandeln. Wenn . selbst ersetzt werden soll, evtl. mit . maskieren, da der . ein RegExp-Steuerzeichen ist.
               var zahl = parseFloat(string)  // String zu Zahl, sonst ist z. B. "10" < "2". Buchstaben nach der Zahl werden ignoriert. Kann NaN zurückliefern, z. B. bei leerem String "" oder wenn er mit Buchstaben anfängt, z. B. "a1".
               if( isNaN(zahl) ) zahl=0
               if(ganzzahl) zahl=Math.round(zahl)
               return zahl
              }