toLowerCase() und IE - Cursor kann nicht mehr mit Pfeiltasten navigiert werden

soraxdesign

Erfahrenes Mitglied
Hallo,
kennt jemand das Problem, wenn man in einem Eingabefeld folgenden Code benutzt:

Code:
<input type="text" name="test"OnKeyUp="javascript:this.value=this.value.toLowerCase()">

dass der IE dann bei der Benutzung der Pfeiltasten immer an das Ende des Strings springt? Kann man das irgendwie lösen?

Hier ein Beispiel (geht nur im IE ;) ):

http://www.soraxdesign.de/Work/test.html
 
Naja...Pfeiltasten sind auch "Keys"...also feuert auch da der Event. Und da du den value neu setzt, ist der bisherige Cursor weg...und irgendwo muss er ja hin :-)

Lösungsansatz:
Anstatt den value nach erfolgter Eingabe zu Ändern, ändere die Eingabe selbst :eek:
Überwache dafür den keypress-Event. Dieser hat eine Eigenschaft "keyCode".

Diese kannst du sowohl auslesen, als auch Ändern. Du musst den keyCode auslesen...dieser liefert dir die Position des Zeichens im Zeichensatz. Daraus ermittle das eingegebe Zeichen, wandle es in Kleinbuchstaben um, ermittle die Position des Kleinbuchstabens im Zeichensatz und weise diese der keyCode-Eigenschaft zu.

Hört sich bestimmt verworren an :-)
So wirds gemacht:
Code:
<input type="text" name="test"OnKeyPress="event.keyCode=String.fromCharCode(event.keyCode).toLowerCase().charCodeAt(0)">
 

Neue Beiträge

Zurück