admin管理员组

文章数量:1291044

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

you can test this code in your brower,

and it always alert UpperCase of a charcode.

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

you can test this code in your brower,

and it always alert UpperCase of a charcode.

Share Improve this question edited Feb 15, 2010 at 3:12 Asaph 163k25 gold badges203 silver badges204 bronze badges asked Feb 15, 2010 at 3:10 zjm1126zjm1126 66.8k86 gold badges179 silver badges222 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 9

At first I thought this was a bug, as the expected lowercase value is returned for the keypress event. It turns out that on keyup/keydown the ASCII uppercase/non-shifted version of a key is always returned.

From this link: http://www.javascriptkit./jsref/eventkeyboardmouse.shtml

Be careful when accessing the keyCode property during an onkeydown or onkeyup event, as it is set whenever any key is pressed, including non character keys like "Shift". This means if you try to press "Shift+a" to try and get the keyCode for "A", you will always end up getting two keyCodes instead, one for "Shift" and one for "A" in that order. What you won't get regardless is the keyCode for "a", as keyCode always returns the unicode value of the uppercase version of a character

  • Pressing Shift+a counts as a single keypress event.
  • Pressing Shift+a counts as two keydown events when the keys are pressed down and two keyup event when the keys are released.
  • keypress returns the posite value of one or more keys being pressed in unison.
  • keydown and keyup return the value of a single key while ignoring any key binations.

Now here's the confusing part: for some reason the unshifted value of the a key is returned as key code 65. But 65 is uppercase A in the ASCII table. So somewhere along the line the browser is taking the lowercase a (ASCII code 97), transforming it to uppercase A, then passing it keydown/keyup as the non-shifted character. Weird, isn't it?

(guess)

It's referencing the Key which doesn't have a case. Case is determined by whether or not the shift key is also down.

本文标签: javascriptWhy always UpperCase in my codeStack Overflow