dedlfix: Variable in die untere Funktion übergeben jQuery

Beitrag lesen

Tach!

Ich möchte die kommastelle Varialbe in die untere Funktion mitgeben, damit sie in die .toFixed() hinzugefüg wird. Wie kann ich das Lösen?

Der Wert steht dir über $('#w').val() zur Verfügung.

[code lang=javascript]

$('#w').on('change', function() {
  if($(this).val() == "4") {
   var kommastellen = 4;
}

if($(this).val() == "2") {
   var kommastellen = 2;
}

if($(this).val() == "3") {
   var kommastellen = 3;
}

});

Don't repeat yourself! Das var muss in einem Scope nur einmal geschrieben werden. Die anderen beiden var sind überflüssig. Wenn die Kommastellen nur im Bereich >=2 und <=4 sein dürfen, dann kann man das in einer Bedingung abfackeln. Zunächst $(this).val() in einer lokalen Variable ablegen, damit das nicht mehrfach ermittelt werden muss, dann den Vergleich mit && notieren, anschließend einmal den Wert zuweisen. Allerdings bleibt dann dann das Wie-bekommt-man-den-Wert-nach-unten-Problem. Besser ist, den Wert mit Math.min() und Math.max() einzufangen. $(this).val(Math.min(4, Math.max(2, $(this).val()))). Und noch besser ist, den Bereich gleich beim <input id="w" type="number" min="2" max="4"> anzugeben. (Und ein sprechenderer Bezeichner als nur "w" kommt auch immer gut.)

dedlfix.