Jetzt habe ich noch eine Frage, kann ich
$('input').on('keyup', function()
und
$('#w').on('change', function()
gemeinsam auslösen.
So wechselt es nur wenn man danach auch wieder was eingibt in einem input Feld.
Richtig, das habe ich übersehen. Verschiebe den ganzen Zahlformatiercode in eine eigene Funktion und klemme diese an die gewünschten Ereignisse:
var meinsuperdynamischernachkommastellenformatiercode = function() {
var kommastellen = Number($('#w').val());
if (! ((kommastellen >= 2) && (kommastellen <= 4))) {
kommastellen = 2;
}
…
$("#result").text(result.toFixed(kommastellen));
}
$('input').on('keyup', meinsuperdynamischernachkommastellenformatiercode);
$('#w').on('change', meinsuperdynamischernachkommastellenformatiercode);
(Die Gültigkeitsabfrage für kommastellen habe ich etwas umgestellt für den Fall, dass #w gar keine Zahl zurückgibt.)