Почему всегда UpperCase в моем коде? - PullRequest
5 голосов
/ 15 февраля 2010
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<input id=a type="text" value='sss'/>
<script type="text/javascript">
    $('#a').keyup(
  function(event){
   alert(String.fromCharCode(event.which))
  })
</script>

Вы можете проверить этот код в своем браузере,

и всегда предупреждает UpperCase о коде.

Ответы [ 2 ]

9 голосов
/ 15 февраля 2010

Сначала я подумал, что это ошибка, так как ожидаемое строчное значение возвращается для события keypress. Оказывается, что на keyup/keydown версия ключа ASCII в верхнем регистре / без смещения всегда возвращается.

По этой ссылке: http://www.javascriptkit.com/jsref/eventkeyboardmouse.shtml

Будьте осторожны при доступе к keyCode собственность во время onkeydown или Событие onkeyup, как оно установлено всякий раз любая клавиша нажата, включая не символьные клавиши типа «Shift». это означает, что если вы попытаетесь нажать «Shift + a», чтобы попробуйте получить ключ кода для «А», вы всегда будет в конечном итоге получить два вместо этого ключевые коды, один для "Shift" и один для «А» в этом порядке. Что ты не получится, независимо от того, код ключа для "a" , поскольку keyCode всегда возвращает значение Юникода в верхнем регистре версия персонажа

  • Нажатие Shift + a считается одним keypress событием.
  • Нажатие Shift + a считается как два keydown события, когда клавиши нажаты, и два keyup события, когда клавиши отпущены.
  • keypress возвращает составное значение одной или нескольких клавиш, нажимаемых в унисон.
  • keydown и keyup возвращают значение одной клавиши , игнорируя любые комбинации клавиш.

Теперь вот запутанная часть: по какой-то причине несмещенное значение ключа a возвращается в виде кода ключа 65. Но 65 в верхнем регистре A в таблице ASCII. Таким образом, где-то вдоль строки браузер берет строчную букву a (код ASCII 97), преобразуя ее в прописную букву A, а затем передавая keydown/keyup как символ без смещения. Странно, не правда ли?

1 голос
/ 15 февраля 2010

(глазок)

Это ссылка на ключ , который не имеет регистра. Случай определяется тем, нажата или нет клавиша Shift.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...