Почему всегда UpperCase в моем коде?

<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>

можно протестировать этот код в brower,

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

5
задан Asaph 15 February 2010 в 03:12
поделиться

2 ответа

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

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

Будьте осторожны при доступе к свойству keyCode во время onkeydown или onkeyup событие, поскольку оно устанавливается всякий раз, когда нажимается любая клавиша, включая клавиши, не содержащие символов, такие как "Shift". Это означает, что если вы попытаетесь нажать "Shift + A", чтобы попытаться получить keyCode для "A", вы всегда получите два keyCodes, один для Shift и один для A в указанном порядке. Независимо от того, что вы не получите, так это keyCode для "a", , поскольку keyCode всегда возвращает значение Unicode заглавной версии символ

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

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

9
ответ дан 13 December 2019 в 22:07
поделиться

(предположить)

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

1
ответ дан 13 December 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: