Schmaid: Zahlen addieren

Ich bin am ausrasten!!!

das einfachste auf der Welt, zwei zahlen zu addieren, FUNKTIONIERT NICHT!!! Ich kann mir nicht erklären warum er die Werte aneinander hängt und nicht ADDIERT!!!!

Was mach ich falsch? Warum geht es nicht?

Der Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Gehzeit Rechner ;-)</title>
<script type="text/javascript">
<!--

function ZeitRechnen (anfZeit) {
  var kommen = anfZeit;
  var stunden = 820;
  var endZeit = kommen + stunden;
  return endZeit;

}

function XY (ZeitEer) {
  var zeitAusgabe = ZeitRechnen(ZeitEer);
  document.StartZeitEingabe.EndZeitFeld.value = zeitAusgabe;
  }

//-->
</script>
</head>
<body>
<form name="StartZeitEingabe" action="">
<pre>
Anfangs Uhrzeit: <input type="text" name="ZeitEingabe" />
</pre>

<input type="button" value="Endzeit Ausrechnen"
    onClick="XY(document.StartZeitEingabe.ZeitEingabe.value)"/>

<pre>
Zeit zum Gehen: <input type="text" name="EndZeitFeld" />
</pre>
</form>
</body>
</html>

  1. Versuch mal:

    var endZeit = Number(kommen) + Number(stunden);

    Werte aus Formularfeldern sind standardmässig Strings, die du zuerst in Zahlen konvertieren musst, wenn du addieren willst!

    Gruss,
    Daniel

    1. Ich hab den Fehler!

      JavaScript rechnet prinzipell wenn es eine Zahl bekommt die von einer Eingabe übergeben wird und die mit dem Operator "+" verrechnet werden soll, mit String Werten.
      Multipliziere ich 2 Zahlen, z.B. 1. Zahl von einer Eingabe und die 2. Zahl (fest vorgeben), rechnet JavaScript mit den Zahlen.

      D.h. Übergebe ich einen Eingabewert wird dieser als String bewertet. Will ich dann aber mit diesem Wert und einem andern Wert addieren, ist es das beste entweder wie Du angeben hast, ihm fest zu sagen, mit "Number", dass es eine Zahl ist. Oder ich multipliziere die Zahl mit 1 und addiere dann die zweite.

      Bsp.:

      Einggebener Wert(String) - 715
      Der Wert mit dem Addiert werden soll - 820

      Rechnung Falsch:
      Ergebnis = Wert + 820

      Rechnung Richtig
      Ergebnis = 1*(Wert) + 1*(820)
      --oder--
      Ergebnis = Number(Wert) + Number(820)

      Danke

      Gruß Schmaid

      1. hi,

        Ich hab den Fehler!

        JavaScript rechnet prinzipell wenn es eine Zahl bekommt die von einer Eingabe übergeben wird und die mit dem Operator "+" verrechnet werden soll, mit String Werten.

        wenn du es noch ein wenig exakter formulierst, dann stimmt es sogar:

        das, was du aus der value-eigenschaft eines formularfeldes ausliest, ist _immer_ ein string.

        gruss,
        wahsaga

  2. Hi,

    Du mußt ja auch mit Zahlen rechnen. Also:
    var kommen = parseInt(anfZeit)
    wobei "EndZeitFeld" ja noch garnicht berücksichtigt wird.

    freundliche Grüße
    Ingo

  3. Servus!

    Die Anfrage ist ja noch nicht mal aus dem Forum raus...
    (JAVASCRIPT) Addition bei Java script
    http://forum.de.selfhtml.org/?t=66783&m=381372

    naechstes mal kurz selbst suchen, waer doch was :)

    dbenzhuser

    PS: Tschuldigung, dass ich die URL nicht als Link poste, aber scheinbar nimmt er das nicht an: [pref:t=66783&m=381372]
    (Oder ist es generell sinnfrei auf Threads innerhalb der Forumshauptdatei zu linken? Haelt ja eh nicht lang..)