Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Auszeichnungssprachen » mit Java Script Zeichen in Eingabefeldern sperren/e... Antworten
mit Java Script Zeichen in Eingabefeldern sperren/erlauben

Gon
Otto-Normal-Poster


Beiträge: 71


ok, kurz zum Umfeld des Einsatzes dieser Idee.

Anwendungsort:
das Intranet einer Firma
User:
Berechtigte Mitarbeiter einer einzigen Abteilung
Umsetzung:
Kombination aus HTML, Javascript und ASP mit einer dahinterliegenden SQL-Datenbank


Wir haben ein Formular in das die Mitarbeiter der Personalabteilung die Bewerberdaten eintragen. Ich möchte gerne verhindern, dass gewisse Zeichen eingegeben werden die entweder unsinnig wären (Buchstaben in Datumsangaben) oder die Datenbank gefährden würden (zB HTML Tags)

Ich möchte gerne eine Möglichkeit haben, dem User die Eingabe solcher Zeichen zu untersagen. Ich möchte nicht erst das ganze abschicken, auslesen, überprüfen und dann eintragen oder wieder ausgeben mit den Fehleingaben zur Korrektur.
Ich hatte bisher eine Lösung, die beim Verlassen des Feldes den Inhalt prüft und den Focus auf das Feld legt so dass der User erst weitegehen kann, wenn die Eingabe korrekt ist.
Ich hätte es lieber, wenn er die Zeichen gar nicht erst eingeben kann. Er tippt sozusagen auf seiner Tastatur ein "<" und es erscheint garnicht erst. ich dachte da als erstes an Java Script
Ist das möglich?


Bitte betrachtet das ganze nicht nach den Standpunkten wie "Den User zwingen ist nicht gut" oder ähnlichem, auch wenn ich bei Web Programmierung sowas beachte ist es jetzt hier auf Arbeit nicht von Bedeutung.


---
'Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise.'
(the Duchess)

  Profil   Editieren   Zitieren

Austin Powers
Mausakrobat


Beiträge: 170


Ja, ist möglich.
Mit den Eventhändlern "onKeydown" und "onKeypress" oder "onKeydown" (http://de.selfhtml.org/javascript/sprache/eventhandler.htm) die eigegebene Zeichenkette per regulärem Ausdruck (http://de.selfhtml.org/javascript/objekte/regexp.htm) überprüfen und gültige zeichen wiedergeben,bzw ungültige löschen.
Der bessere Weg wäre allerdings, da sicherer in PHP mit htmlentities() zu arbeiten o.ä. in asp. (ihhh microdoof)

---
MfG:Austin Power (Saturn Realm)
OMW! Zumindest sobald ich herausgefunden hab wo ich JETZT gerade bin.
<---------->
"Wenn Liebe die Antwort ist, könnst Du bitte die Frage neu formulieren?" ... Lily Tomlin
<---------->
code hier http://www.pastebin.com

  Profil   Website   Editieren   Zitieren

Gon
Otto-Normal-Poster


Beiträge: 71


hab mich eben n bissl mit htmlentities() beschäftigt.
In ASP:
1: 
2: 
3: 
4: 
5: 
6: 
7:
  to encode user input text:

 Server.HtmlEncode("<your string>");

to display the data in a control:

 Server.HtmlDecode("&lt;your string&gt;");

Das beseitigt zwar das Problem mit dem HTML Zeichen in der DB, was schonmal hilfreich ist, aber kann nicht verwendet werden um andere Zeichen abzufangen (Buchstaben in Datumsangaben etc.

Ich setzt mich jetzt ma hinter das regexp und versuch das zu verstehen.
Mich interessiert jetzt erstmal ob man damit bei jedem Tastendruck das neue Zeichen prüfen kann oder nur das gesammte Eingabefeld.

---
'Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise.'
(the Duchess)

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Wie schon beschreiben geht es durchaus auch bei jedem Tastendurck. Empfehlen würde jedoch eher das Prüfen beim Absenden (mittels JavaScript) und beim Empfangen (serverseittig mittels ASP). In beiden Fällen solltest du RegEx nutzen können.

Direkt bei der Eingabe wird dies jedoch sehr schwierig. So wäre 2005-06 kein gültiges Datum obwohl du es als Eingabe zulassen mußt. Der User vervollständigt es ja erst durch die weitere Eingabe.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

c3o
Posting-Schinder


Beiträge: 586


"Nur das letzte Zeichen" bringt dich nicht weiter, weil man dann immer noch verbotene Zeichen rein-copypasten kann -- also mit einem Tastendruck jede Menge Zeichen unterbringt.

> Beispielscript

Wie schon erwaehnt bleibt dir die serverseite nochmalige Ueberpruefung aber nicht erspart.

Diese Nachricht wurde geändert von: c3o
  Profil   E-Mail   Website   Editieren   Zitieren

Gon
Otto-Normal-Poster


Beiträge: 71


ok, c3o, das sieht echt hilfreich aus.

vielen Dank.

---
'Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise.'
(the Duchess)

  Profil   Editieren   Zitieren
 

Antworten
Nach oben