2013-02-18 14 views
15

Ja po prostu słuchać na keyup przypadku elementu wejściowego i zebrać wyniki na sznurku jak takJavaScript String.fromCharCode Rozróżnianie wielkości liter?

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

Problem polega na tym, że słowo jest wielkimi literami, a ja chcę, żeby być rozróżniana. Na przykład, jeśli wpiszesz abcef, moje skumulowane słowo stanie się "ABCEF".

Uwaga - Potrzebuję czystego rozwiązania javascript (bez bibliotek ..) Jakieś przemyślenia?

+1

65 to kod dla dużych liter "A", a nie jako małych liter. – Pointy

+1

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

+0

Jaki jest kod dostępu dla małych liter? Nie można znaleźć odpowiedzi w google ... –

Odpowiedz

29

wydarzenia jak keyup i keydown powróci 65 zarówno a i A(a także true dla event.shiftKey jeśli klawisz jest wciśnięty).

Zdarzenie keypress zwraca różne kody klawiszy dla małych i wielkich liter, dlatego aby uzyskać wrażliwość na tę sprawę, należy użyć zdarzenia keypress, a fromCharCode() zwróci prawidłową literę z uwzględnieniem wielkości liter.

+5

Zawsze możesz sprawdzić, czy event.shiftKey ma wartość true lub false i zastosować .toLowerCase() – Prusprus

+0

Myślę, że musisz to sprawdzić, ponieważ niektóre zdarzenia kepress nie mogą być anulowane, tak jak keydowns – Ayyash

3

Zawsze można zadzwonić .toLowerCase()

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

Może więcej sensu nazywać .toLowerCase() tylko raz, w momencie zdecydujesz skończysz gromadzenia znaków.

+0

Polecam przeciw temu, jeśli dostępne jest natywne rozwiązanie. – marksyzm

Powiązane problemy