Javascript funktioniert nur 1x
Guten Tag,
ich habe ein komisches Problem. Ich habe 2 input number Felder. Die schreiben ein Produkt in ein drittes.
Dann noch , durch Komma ersetzt und auf 2 Nachkommastellen gesetzt. Auslöser mit onchange
Seite geladen.
Input 1 keine AHnung 2,4 eingetragen. Input 2 3 eingetragen. Wunderbar: input 3 zeigt 7,2 an.
Dann ändere ich input 1 auf 3 und input 2 auf 4 statt 12 bleibt er bei 7,2 stehen...
Das js:
Das html
Was ist das fürn Quark?
mfG
ratzekahl
ich habe ein komisches Problem. Ich habe 2 input number Felder. Die schreiben ein Produkt in ein drittes.
Dann noch , durch Komma ersetzt und auf 2 Nachkommastellen gesetzt. Auslöser mit onchange
Seite geladen.
Input 1 keine AHnung 2,4 eingetragen. Input 2 3 eingetragen. Wunderbar: input 3 zeigt 7,2 an.
Dann ändere ich input 1 auf 3 und input 2 auf 4 statt 12 bleibt er bei 7,2 stehen...
Das js:
<script>
function produkt() {
input1 = document.getElementById("nettopreis0").value;
input2 = document.getElementById("anzahl0").value;
produkt=input1*input2;
document.getElementById("sum0").value=produkt.toFixed(2).replace(".",",");
}
</script>
Das html
... <td class="datenzelle2"><input id="nettopreis0" type="number" name = "nettopreis" value="0"></td>
<td class="datenzelle2"><input id="anzahl0" type="number" name = "anzahl" value="0" OnChange="produkt()"></td>
<td class="datenzelle2"><input readonly id="sum0" type="text" name = "summe" value="0"></td>...
Was ist das fürn Quark?
mfG
ratzekahl
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5794717043
Url: https://administrator.de/contentid/5794717043
Ausgedruckt am: 22.11.2024 um 02:11 Uhr
5 Kommentare
Neuester Kommentar
Naja wenn man mit Strings multipliziert was erwartest du . Du solltest Daten schon in die richtigen Typen bringen (parseFloat / parseInt), doppelte Variablennamen sind auch nicht hilfreich ....
wurstel
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
function product(){
let input1 = document.getElementById("nettopreis0").value;
let input2 = document.getElementById("anzahl0").value;
let produkt = parseFloat(input1.replace(",",".")) * parseFloat(input2.replace(",","."));
document.getElementById("sum0").value = produkt.toFixed(2).replace(".",",");
}
</script>
</head>
<body>
Preis = <input id="nettopreis0" type="number" onChange="product()"/><br/>
Anzahl = <input id="anzahl0" type="number" onChange="product()"/><br/>
Summe = <input id="sum0" type="number" readonly/>
</body>
</html>
Zitat von @ratzekahl1:
Ah, Ok.
kurze Rückfragen: Javascript convertiert also nicht wie php automatisch?
Nein.Ah, Ok.
kurze Rückfragen: Javascript convertiert also nicht wie php automatisch?
Warum klappte es 1x einwandrei?
Weil du beim ersten Ausführen die Funktionsdefinition selbst überschreibst.Auch ein Grund warum man lokale Variablen besser mit let statt mit var deklariert die verhindern ein erneutes globales Deklarieren.