Input Felder als Number, Date o.ä. formatieren

WorldsBestKiller

Grünschnabel
Hi

ich hab mal wieder ne Frage :

Besteht in JScript die Möglichkeit die Input Felder eines Formulars schon im Voraus zu formatieren, so dass falsche Eingaben gleich bei der Eingabe abgefangen werden.

ich tüftle grad an ner Funktion wo beim onKeydown Event alle falschen Eingaben mit "replace" ersetzt werden, das auch bei der Eingabe von PrimaryKeys die nur aus Grossbuchstaben bestehen dürfen. Hier ersetze ich einfach alle Sonder- und Leerzeichen mit "", allerdings hab ich bei Währung z.B. das Problem dass das Komma vor den Cent ( 100,99 € z.B.) zwar vorkommen darf aber nur einmal und auch nur an einer festen Stelle.
Also am besten sowas wie :

Code:
<input type =date ...

oder so.
Möglich sollen jeweils sein :

-Datum
-Währung
-Numerisch
-Alphanumerisch

Weiss jemand Hilfe?

Thx && So long
 
Dafür gibts reguläre Ausdrücke....

Code:
/^\d+(,\d\d|)$/
...würde bspw. "123,45" oder "45" erlauben, jedoch nicht "12,34,56" oder "78,9" oder "4711,"

das Problem dabei ist nur, das RegExp nicht vorraussehen kann, ob und was der Besucher noch eingeben will.

angenommen, du erlaubst genau ein Komma, und nur, wenn diesem genau 2 Ziffern folgen, .... wie soll der Benutzer jemals
diese 2 Kommastellen eintippen können, wenn während der Eingabe bereits geprüft wird?

Will er z.B. eingeben:123,45

dann tippt er:
"1" ...ok
"2" ...ok
"3" ...ok
"," ...Fehler, weil die 2 Nachkommastellen fehlen...du schnippelst ihm das Komma weg....


du könntest Schritt für Schritt gegen einen Ausdruck testen, und eindeutig nicht erlaubte Zeichen entfernen, eine endgültige Prüfung ist meines Erachtens je nach
Suchmuster(im speziellen Datum und Währung).... erst beim Senden des Formulars möglich.
 
Danke für den Tip, dieses RegExp ist echt praktisch, die Prüfung mach ich onBlur das heisst wenn man aus dem InputFeld rausgeht. Nur noch eine Bitte :

Ich hab für das Datum ( DD.MM.YYYY) als Ausdruck bisher

Code:
/^(d\d\.\d\d\.\d{4})/;

allerdings akzeptiert er so auch ein Datum a la "66.66.6666" und das ist ja nicht sinn der sache.
Fällt dir auf die Schnelle da was ein ?
 
Hi

onBlur="fVerText(this.value)"

Eigentlich könntest du auch onChange nehmen, is aba gleich. ^^

PHP:
function fVerText(String) {
  var Tag = String.substr(0,2);
  var Monat = String.substr(2,2);
  var Jahr = String.substr(5,4);

  if(! Tag<32&&Monat<13&&Jahr<2010) { alert('Bitte überprüfen Sie Ihre Angaben');  }
}

:D
Ich hoffe es funktioniert, ich habe es nicht getestet, aber der Gedanke ist ja wichtig, sonst kannst du es ja auch korrigieren.
Gruss
horusab

//EDIT: Ups, ich habe die Punkte vergessen beim substr ^^.
 
Zuletzt bearbeitet:
Danke, mach ich zusätzlich zum regExp Test ob die Punkte an der richtigen Stelle sind.
Hätt ich eigentlich auch selber drauf komen können, Knoten im Kopf halt... ;)

Thx euch beiden && So long
 

Neue Beiträge

Zurück