Ashura: Textfeld: Wert auf bestimme Kommastelle runden

Beitrag lesen

Hallo Matthias.

wie kann ich dem textfelkd nun sagen, das wenn ich eine zahl eingebe (z.B. 243,587645) das er dann automatisch 243,59 daraus macht? geht das und wenn ja wie muss ich meinen code ändern?

Das Bedarf etwas Arbeit, ist aber machbar.

Als erstes verpasst du dem input-Element den Eventhandler http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onblur@title=onblur, welcher aktiviert wird, wenn du dem Textfeld den Fokus entziehst. (Also mit Tab zum nächsten springst, oder aber mit der Maus irgend wohin klickst.)

In diesem Eventhandler notierst du eine von dir <http://de.selfhtml.org/javascript/sprache/funktionen.htm#definieren@title=selbst geschrieben Funktion>, deren Inhalt ich noch erläutern werde. Als Parameter übergibst du http://de.selfhtml.org/javascript/sprache/objekte.htm#this@title=this, also das aktuell ausgewählte Objekt, in diesem Falle also das input-Elementes.

Den übergebenen http://de.selfhtml.org/javascript/objekte/elements.htm#value@title=Wert würde ich zuallererst in einer http://de.selfhtml.org/javascript/sprache/variablen.htm#definieren@title=Variable zum arbeiten ablegen.

In deiner Funktion musst du nun als erstes das Komma in besagter Variable durch den Punkt http://de.selfhtml.org/javascript/objekte/string.htm#replace@title=ersetzen. JavaScript orientiert sich an internationalen Festlegungen. Und dort ist der Dezimaltrenner nun einmal der Punkt und das Tausenderzeichen das Komma.

Als nächstes musst du den Wert <http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_float@title=in eine Fließkommazahl umwandeln>. (Zuvor ist der Wert lediglich eine Zeichenkette, womit keine mathematischen Operationen durchgeführt werden können.)

Nun legst du die http://de.selfhtml.org/javascript/objekte/number.htm#to_precision@title=Genauigkeit der Zahl fest, in diesem Falle 4.

Zu guter letzt ersetzt du nun den Wert des übergebenen Objekts (mittels this also des input-Elementes) per einfache Wertzuweisung durch das Endergebnis, welches sich in der Variable befindet.

Einen schönen Samstag noch.

Gruß, Ashura

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
mathbr:del.icio.us/ mathbr:w00t/