Wie kann ich in JavaScript Werte zusammenrechnen und dann ausgeben?
Hi Leute,
ich habe ein Summe-Feld indem ein Preis angezeigt werden soll.
<input type="text" style="background-color: #fff" class="form-control" id="Summe" placeholder="0" readonly>
Dann habe ich noch eine Funktion die drei Werte mitliefert: Die ID des Produkts (identisch mit der ID in HTML), dann die Menge des Produkts und zum Schluss noch den Preis.
Diese Funktion wird per + und - Buttons aufgerufen. Für jedes Produkt gibt es auch eine Art Counter, auf dem angezeigt wird, wie viele man kauft.
Bis hierhin funktioniert alles. Das was nicht funktioniert, ist der Preis der auf das Feld addiert werden soll. Im Script habe ich es hiermit versucht, allerdings steht im Summe-Feld dann immer NaN (Not a Number). Aber wie bekomm ich das richtig?
zahl1 = parseFloat(document.getElementById('Summe').value);
zahl2 = parseFloat(price);
document.getElementById('Summe').value = zahl1 + zahl2;
Ich muss parseFloat benutzen, denn Preise enthalten selbstverständlich auch Kommas :)
Bitte helft mir! Danke! LG
4 Antworten
Ich würde mir erstmal ausgeben lassen, was in zahl1 und zahl2 drinsteht, also ob das schon wirklich Zahlen sind. Das geht mit der Anweisung
console.log(zahl1, zahl2);
am besten. Die Werte erscheinen dann in der Browserkonsole. Alternativ
alert(zahl1);
alert(zahl2);
Vielleicht siehst du dann schon, welche der beiden Zahlen nicht erkannt wird.
Mal ins Blaue geraten: Gibst du die Zahlen in dem Format "123,45" (also mit dem Komma) ein? Das ist falsch, richtig wäre "123.45" (also mit Punkt).
Das mit dem Punkt undso ist mir alles klar, ich habe auch schon in der Konsole ein bisschen probiert, jetzt funktionierts. Ich weiß nicht warum, aber es geht :)
Wenn NaN zurückgegeben wird und keine Zahl bzw eine Summe dann wird vermutlich die Variablen zahl2 keine Zahl beinhalten.
Ich würde mir mit console.log(zahl2) in der Konsole den Wert ausgeben.
Zusätzlich würde ich die Berechnung nicht erst bei der Zuweisung machen sondern immer trennen. also summe = zahl1 + zahl2; und dann .....value = summe;
also werte mit kommas werden sowieso abgeschnitten von parsefloat , wert mit punkt funktionieren .
zweitens , willst du den wert aus Summe und dann ihn in Summe schreiben .
Ich sehe aber gar keinen Wert bei Summe , also wird nichts mit price (der auch nirgends zu sehen ist) versucht zu addieren, was dann NaN ergibt .
machst du das in zwei felder ergibt das das gewüschte ergebnis .
Darfst kein komma verwenden sondern nur punkt