Tastatureingabe manipulieren / ignorieren
Dettmer Strutz
- javascript
Hallo,
ich möchte in ein Textfeld nur ein Datum eingeben lassen, also nur die Zeichen 1-9./ zulassen. Die nicht korrekten Zeichen bei onKeyUp oder onBlur aus dem String zu löschen ist auch kein Problem, doch leider springt dann der Cursor ans Ende des Textfelds.
Jetzt dachte ich mir die Tastatureingabe bereits bei onKeyDown zu testen, da an der Stelle die Tastatureingabe noch nicht an den String übergeben worden ist. Doch noch habe ich leider nicht herausbekommen, wie ich den Wert der Tastatureingabe manipulieren kann.
Wäre toll wenn da einer eine Idee hätte.
Danke
Dettmer
Hallo Dettmar,
Jetzt dachte ich mir die Tastatureingabe bereits bei onKeyDown zu testen, da an der Stelle die Tastatureingabe noch nicht an den String übergeben worden ist. Doch noch habe ich leider nicht herausbekommen, wie ich den Wert der Tastatureingabe manipulieren kann.
Ein Beispiel für eine solche Tastaturmanipulation findest du hier:
<../../sfarchiv/1999_3/t04910.htm#a23949>
Viele Grüße
Antje
Hallo Antje,
danke für Deine Antwort.
Dies ist auch etwa der Weg den ich bestritten habe, nur an eine anderen Stelle. Dies funktioniert auch solange wie an Textende eingegeben wird, nur möcht man seine Eingabe in der Mitte korrieren, so springt der Cursor bei jeder korrekten Eingabe ans Ende des Felds, da der String in das Textfeld kopiert wird.
Meine Idee sieht etwa so aus:
function test()
{
var ErlaubteZeichen = " 48 49 50 51 52 53 54 55 56 57 97 98 99 100 101 102 103 104 105 8 9 13 16 17 33 34 35 36 37 38 39 40 45 46 "
if (ErlaubteZeichen.indexOf(" " + window.event.KeyCode + " ") < 0) then
window.event.KeyCode = 0;
}
<Input Type=Text Name="Datum" onKeyDown="test()">
Dies funktioniert natürlich nicht, da ich den KeyCode so nicht ändern kann, aber dies ist etwa das, was ich mir vorstelle.
Danke
Dettmer
PS : Sorry an alle, daß ich die Anfrage zwei Mal reingesetzt habe. War ein Versehen.