Kommas in Input Feldern
Aiwi
- javascript
Hallo!
ICh habe ein grosses Problem.
Ich benutze Input Felder in einem Formular.
Dem Benutzer soll es moeglich sein Kommas einzutippen und im Input Feld sollen spaeter auch Kommas angezeigt werden.Es handelt sich dabei aber um reine Nummern Felder(also es sind nur Zahlen erlaubt)
Die Eingabe habe ich soweit veraendert,dass der User ein Komma eingeben kann und dieses wandel ich intern mit einem Javascript in einen Punkt um,damit ich mit diesem Wert rechnen kann.
Nun wollte ich spaeter den Punkt zu einem Komma "zurueckverwandeln"
und es im Input Feld darstellen.Das funktioniert leider nicht :-(
Muss ich ein Input Feld vom Type text nehmen und alle anderen Eingaben,ausser Zahlen abfangen?ODer gibt es eine andere Loesung?
Code:
"
Wandlung von komma in .
if((String(rechbetrag)).indexOf(',') != -1)
{
rechbetrag = Number(rechbetrag.replace(/,/,"."));
}
...berechnung...
if((String(rechbetrag)).indexOf('.') != -1)
{
rechbetrag = String(rechbetrag.replace(/./,","));
}
window.document.Buendel.summe.value=rechbetrag;
"
Vielen Dank schonmal im Voraus!
Aiwi
Hi,
Die Eingabe habe ich soweit veraendert,dass der User ein
Komma eingeben kann und dieses wandel ich intern mit einem
Javascript in einen Punkt um,damit ich mit diesem Wert
rechnen kann.
Nun wollte ich spaeter den Punkt zu einem Komma
"zurueckverwandeln" und es im Input Feld darstellen.
Das funktioniert leider nicht :-(
was hindert Dich daran, die Umwandlung in einer lokalen
Variable vorzunehmen, damit zu rechnen und den Inhalt des
Formularfeldes unverändert zu lassen?
Viele Grüße
Michael
Hallo Aiwi
rechbetrag = String(rechbetrag.replace(/./,","));
es muß lauten String(rechbetrag).replace()
rechbetrag war ist von Typ Number und muss um die Stringmethode replace anzuwenden, erst in einen String umgewandelt werden.
wird der Replace-Methode als Argument /Wert/ übergeben, so wird dieses Argument als regulärer Ausdruck gedeutet. Der Punkt hat aber innerhalb von regulären Ausdrücken eine Bedeutung. Siehe dazu http://selfhtml.teamone.de/javascript/objekte/regexp.htm#allgemeines
Um dieses Problem zu umgehen hast du 2 Möglichkeiten:
a) du maskierst
rechbetrag = String(rechbetrag).replace(/./,",");
b) du übergibst der Replace-Methode als Argument keinen regulären Ausdruck, sondern einen String
rechbetrag = String(rechbetrag).replace(".",",");
Viele Grüße
Antje