2013-02-18 10 views
15

Ich höre einfach für eine keyup bei einem Eingangselement und die Ergebnisse in einen String sammeln wie soJavascript String.fromCharCode Groß-/Kleinschreibung?

word=word+String.fromCharCode(key.keyCode); 

Das Problem ist, dass das Wort in Großbuchstaben ist, während ich es case-sensitive sein will. Zum Beispiel, wenn ich abcef schreibe mein akkumuliertes Wort wird "ABCEF".

Hinweis - Ich brauche eine reine Javascript-Lösung (keine Bibliotheken ..) Irgendwelche Gedanken?

+1

65 ist der Code für Großbuchstaben "A", nicht Kleinbuchstaben. – Pointy

+1

'String.fromCharCode (key.keyCode) .toLowerCase()' ?? – jbabey

+0

Was ist der Schlüsselcode für Kleinbuchstaben a? Kann keine Antwort in Google finden ... –

Antwort

29

Event wie keyup und keydown werden 65 zurückkehren sowohl für a und A(und auch true für event.shiftKey, wenn diese Taste gedrückt gehalten wird).

Die keypress Ereignis gibt verschiedene keycodes für Groß- und Kleinbuchstaben, so diese Arbeit zu erhalten, falls sensible Sie die keypress Ereignis verwenden sollten, und fromCharCode() den richtigen Buchstaben, Groß- und Kleinschreibung zurückzukehren.

+5

Sie können immer überprüfen, ob event.shiftKey wahr oder falsch ist und ein .toLowerCase() – Prusprus

+0

Ich denke, Sie müssen überprüfen, weil einige kepress Ereignisse nicht wie Keydowns abgebrochen werden können – Ayyash

3

Sie können immer .toLowerCase()

word = word + String.fromCharCode(key.keyCode).toLowerCase(); 

nennen könnte mehr Sinn machen .toLowerCase() nur einmal an dem Punkt, rufen Sie sich entscheiden, Sie akkumulieren Zeichen abgeschlossen.

+0

Ich würde dies empfehlen, wenn eine native Lösung verfügbar ist. – marksyzm

Verwandte Themen