EneR: input felder addieren

Moin,
ich habe das hier:
<input type="text" name="a" size="1">
<input type="text" name="b" size="1">
und dazugehörig:
var a = document.Formular.a.value;
var b = document.Formular.b.value;
so ich möchte jetzt die Werte (es müssen dann natürlich Zahlen sein) ddieren, mit:
c = a + b;
geht dass natürlich nicht...
hat irgendjemand eine Idee?
hatte schon überlegt vielleicht einen type angeben, der nur Zahlen zulässt oder so

vielen Dank schon einmal im vorraus!!

  1. Hallo EneR,

    hat irgendjemand eine Idee?

    parseInt oder parseFloat

    Mit freundlichem Gruß
    Micha

    1. Hello out there!

      hatte schon überlegt vielleicht einen type angeben, der nur Zahlen zulässt oder so

      Texteingabefelder haben immer als Wert einen String. Diesen müsstest du in eine Zahl umwandeln. Das ginge bspw. mit

      parseInt oder parseFloat

      Schneller ist aber die Multiplikation mit 1; da es für Strings keinen '*'-Operator gibt, wird die Typumwandlung in Zahlen automaisch erledigt:

      var c = a * 1 + b * 1;

      See ya up the road,
      Gunnar

      --
      „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)
      1. Hallo Gunnar Bittersmann,

        Schneller ist aber die Multiplikation mit 1

        Warum eigentlich? Für die Typumwandlung muss doch eine ähnliche Methode verwendet werden, um aus dem String eine Ziffer zu machen. Wo kommt der Geschwindigkeitsvorteil her?

        Mit freundlichem Gruß
        Micha

        1. Hello out there!

          Schneller ist aber die Multiplikation mit 1

          Warum eigentlich? Für die Typumwandlung muss doch eine ähnliche Methode verwendet werden, um aus dem String eine Ziffer zu machen.

          parseInt()/parseFloat() tun schon etwas mehr: aus "42foo" lesen sie 42 aus; Multiplikation mit 1 ergibt NaN (not a number).

          See ya up the road,
          Gunnar

          --
          „Und [dieses Forum] soll […] auch ein Fachforum bleiben und kein Psychologieforum werden.“ (Kirsten Evers)