bennybob: automatisches zusammenrechnung und ausgabe mit Javascript

Hallo

Ich kann JavaScript nicht besonders.. eigentlich garnicht.

Ich habe 3 Formfelder die in etwa so aufgebaut sind:

[FELD1] + [FELD2] = [FELD3]

die zeichen + und = sind echoausgaben... man sieht quasie die rechnung...

Ich möchte halt dass man sobald man das Feld2 verlässt (sei es aufgrund das man rausklickt oder die maximale zeichenbreite erfüllt ist) er die ausgabe errechnet...

ich habe das irgendwie mal porbiert aber nicht hinbekommen

var ergebnis = document.rechnung.feld3.value
ergebnis = (document.rechnung.feld1.value) + (document.rechnung.feld2.value)

und sowas... ziemlich stumperhaft!

kann mir da jemand helfen?

ciao

  1. Ich möchte halt dass man sobald man das Feld2 verlässt (sei es aufgrund das man rausklickt oder die maximale zeichenbreite erfüllt ist) er die ausgabe errechnet...

    Versuche es beim Feld 2 mit der Methode onBlur="berechnung()"

    Die Funktion berechnung ist dann das hier:

    var ergebnis = document.rechnung.feld3.value
    ergebnis = (document.rechnung.feld1.value) + (document.rechnung.feld2.value)

    Gruß
      Kai

  2. hi,

    Ich möchte halt dass man sobald man das Feld2 verlässt (sei es aufgrund das man rausklickt oder die maximale zeichenbreite erfüllt ist) er die ausgabe errechnet...

    dazu hat kai dir ja schon einen möglichen eventhandler genannt.
    allerdings möchte ich noch anmerken, dass ich das nicht für ideal halte.
    vielleicht klicke ich als user zuerst ins zweite feld, um es auszufüllen, und danach erst ins erste, um diesem einen wert zu geben - nach deiner ablauflogik komme ichda aber gar nicht mehr zu ...

    ich habe das irgendwie mal porbiert aber nicht hinbekommen
    var ergebnis = document.rechnung.feld3.value
    ergebnis = (document.rechnung.feld1.value) + (document.rechnung.feld2.value)

    was du aus dem value eines eingabefeldes ausliest, wird von javascript _immer_ als string behandelt.
    dem zu folge wird bei deiner schreibweise durch das + dann auch eine stringverkettung durchgeführt, und keine mathematische addition.

    wert 5 im ersten feld und 16 im zweiten würde dann also "5" + "16" = "516" ergeben.

    deshalb solltest du die ausgelesenen werte zuerst in integer-zahlen umwandeln, schau dir dazu http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#parse_int an. (oder auch parseFloat, falls du statt integer lieber float verwenden möchtest (dezimalzahlen).)

    gruss,
    wahsaga