Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Javascript > IE event and keyCode/charCode

Reply
Thread Tools

IE event and keyCode/charCode

 
 
Thomas Christensen
Guest
Posts: n/a
 
      10-20-2005
I'm trying to figure out what key the user pressed using a Danish
keyboard layout. charCodeAt returns the correct number, but
event.keyCode returns a wrong number, when using one of the keys that
are different on a Danish keyboard layout. "-" returns 45 and 189
respectively. Etc. (The input-field in the sample code below displays
the right character).

I've tried setting the lang-parameter to 'da', but it doesn't make a
difference.

sample code:

<input type="text"
onkeyup="alert(this.value.charCodeAt(this.value.le ngth-1));alert(window.event.keyCode);">

Am I missing something, or is the event.keyCode in IE hardcoded to an
english keyboard layout? Is there a way to automatically convert the
event.keyCode so it corresponds with the users keyboard?

Thomas
 
Reply With Quote
 
 
 
 
Julian Turner
Guest
Posts: n/a
 
      10-20-2005

Thomas Christensen wrote:

> I'm trying to figure out what key the user pressed using a Danish
> keyboard layout. charCodeAt returns the correct number, but
> event.keyCode returns a wrong number, when using one of the keys that
> are different on a Danish keyboard layout. "-" returns 45 and 189
> respectively. Etc. (The input-field in the sample code below displays
> the right character).
>
> I've tried setting the lang-parameter to 'da', but it doesn't make a
> difference.
>
> sample code:
>
> <input type="text"
> onkeyup="alert(this.value.charCodeAt(this.value.le ngth-1));alert(window.event.keyCode);">
>
> Am I missing something, or is the event.keyCode in IE hardcoded to an
> english keyboard layout? Is there a way to automatically convert the
> event.keyCode so it corresponds with the users keyboard?
>
> Thomas


I am not sure if this answers your question, but I note that you are
using "onkeyup". Try using "onkeypress", as the keyCode for this event
captures the selected character (taking account of the shiftKey etc),
whereas "onkeydown" and "onkeyup" only seem to capture raw information
about the physical key you pushed on the keyboard.

Julian

 
Reply With Quote
 
 
 
 
RobG
Guest
Posts: n/a
 
      10-20-2005
Thomas Christensen wrote:
> I'm trying to figure out what key the user pressed using a Danish
> keyboard layout. charCodeAt returns the correct number, but
> event.keyCode returns a wrong number, when using one of the keys that
> are different on a Danish keyboard layout. "-" returns 45 and 189
> respectively. Etc. (The input-field in the sample code below displays
> the right character).


This maybe a silly question, but are you trying to get the key that was
pressed, or the character that was entered?

Try some of these links:

<URL:http://developer.mozilla.org/en/docs/keyCode>
<URL:http://developer.mozilla.org/en/docs/DOM:event.charCode>

<URL:http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/keycode.asp>

the keyCode maps to the Unicode character of the keyboard key - that is,
the actual key that was pressed. e.g. pressing 'u' gives a charCode of
117 (lower case u) and a keyCode of 85 (the U key).

Hold down the shift key, and you get 85 for both, which is the code for
an upper case U character and the U key.

charCode takes into account the whether modifier keys (shift, control,
etc.) are pressed, keyCode doesn't.

>
> I've tried setting the lang-parameter to 'da', but it doesn't make a
> difference.
>
> sample code:
>
> <input type="text"
> onkeyup="alert(this.value.charCodeAt(this.value.le ngth-1));alert(window.event.keyCode);">
>
>
> Am I missing something, or is the event.keyCode in IE hardcoded to an
> english keyboard layout? Is there a way to automatically convert the
> event.keyCode so it corresponds with the users keyboard?


Play with this:

<input type="text" onkeyup="
document.getElementById('zz').innerHTML =
'<pre>charCodeAt: ' + this.value.charCodeAt(this.value.length-1)
+ '<br>keyCode :' + event.keyCode + '</pre>;
">

<div id="zz"></div>



--
Rob
 
Reply With Quote
 
Robert
Guest
Posts: n/a
 
      10-20-2005
Thomas Christensen wrote:
> I'm trying to figure out what key the user pressed using a Danish
> keyboard layout.
> <input type="text"
> onkeyup="alert(this.value.charCodeAt(this.value.le ngth-1));alert(window.event.keyCode);">
>
> Am I missing something, or is the event.keyCode in IE hardcoded to an
> english keyboard layout? Is there a way to automatically convert the
> event.keyCode so it corresponds with the users keyboard?


The keyCode is not hardcoded to an english layout.
For IE in keyDown and keyUp events the keyCode is taken from the keyCode
constants.

http://msdn.microsoft.com/library/de...econstants.asp
http://www.w3.org/TR/1999/WD-DOM-Lev...23/events.html

In keyPress it is the Unicode character (codepoint?).
So maybe you can change your onkeyup to onkeypress.

You can play a little to see what works here
http://www.w3.org/2002/09/tests/keys.html

Als keep in mind that Mozilla/Firefox works different with these events.
 
Reply With Quote
 
respirator@gmail.com
Guest
Posts: n/a
 
      10-20-2005
Julian Turner wrote:
> I am not sure if this answers your question, but I note that you are
> using "onkeyup". Try using "onkeypress", as the keyCode for this event
> captures the selected character (taking account of the shiftKey etc),
> whereas "onkeydown" and "onkeyup" only seem to capture raw information
> about the physical key you pushed on the keyboard.
>
> Julian


It works, but onkeypress occurs before onkeyup and before the content
of the event source (ie. the input field gets updated). I can work
around that though. Thanks!

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Determining the Browser and event.keyCode vs. event.which Nathan Sokalski ASP .Net 4 03-11-2006 06:36 AM
how to handle both onmouseup event and onClick event JerryG ASP .Net 0 12-20-2005 03:49 AM
TexChanged event and Click event confusion Tommy ASP .Net 3 07-19-2005 01:57 PM
difference between PreRender event and Page_Load event Jimmy ASP .Net 5 04-27-2005 10:51 PM
Executing server event and Javascript event Neven Klofutar ASP .Net 3 12-10-2004 08:43 AM



Advertisments