JSFiddle - React, Tailwind, and code Playground
HTML
<h3>Geht</h3>
<form name="formular">
<input type="text" id="Wert1" name="1" value="" onkeyup="bp_calculate()"/ >
<input type="text" id="Wert2" name="2" value="" onkeyup="bp_calculate()"/ >
<input type="text" id="Wert3" name="3" value="" onkeyup="bp_calculate()"/ >
<input type="text" id="Wert4" value="" readonly>
</form>
<h3>Geht NICHT</h3>
<form name="formular_n">
<input type="text" id="Wert1n" name="1" value="" onkeyup="bp_calculate_no()"/ >
<input type="text" id="Wert2n" name="2" value="" onkeyup="bp_calculate_no()"/ >
<input type="text" id="Wert3n" name="3" value="" onkeyup="bp_calculate_no()"/ >
<input type="text" id="Wert6n" value="" readonly>
</form>
JavaScript
function bp_calculate() {
var options = {
style: "currency",
minimumFractionDigits: 0,
currency: "EUR"
};
let summe_1 = getInputAsFloat(document.formular.Wert1 || 0) +
getInputAsFloat(document.formular.Wert2 || 0) +
getInputAsFloat(document.formular.Wert3 || 0);
;
document.getElementById("Wert4").value= (summe_1).toLocaleString("de-DE", options);
}
function bp_calculate_no() {
var options = {
style: "currency",
minimumFractionDigits: 0,
currency: "EUR"
};
let summe_1 = getInputAsFloat(document.formular_n.Wert1n || 0) +
getInputAsFloat(document.formular_n.Wert2n || 0) +
getInputAsFloat(document.formular_n.Wert3n || 0) +
getInputAsFloat(document.formular_n.Wert4n || 0) +
getInputAsFloat(document.formular_n.Wert5n || 0)
;
document.getElementById("Wert6n").value= (summe_1).toLocaleString("de-DE", options);
}
function getInputAsFloat(element) {
return parseFloat(element.value.replace(/[^0-9 ]/g, "")) || 0;
}