Aiwi: Kommas in Input Feldern

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

  1. 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

  2. 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