Board index » javascript » KeyPress Events in IE
|
ronbrooks
Registered User |
|
ronbrooks
Registered User |
KeyPress Events in IE
2003-10-08 09:43:32 AM
Is there any way in JavaScript to determine which key has been pressed during any of the key-press, key-down, key-up events in IE6+? It appears the "which" property only works for Netscape. - |
| Jules
Registered User |
2003-10-08 09:59:00 AM
Re:KeyPress Events in IE
I can help you with this!
In netscape, it is evt.which. In IE, it's event.keyCode. Here's a snippet of code I use: function onlyNumbersXB(obj, e, mask) { var keyCode; var returnVal = false; if (window.event) { e = window.event; keyCode = e.keyCode; } else { // a key, such as delete, was pressed; let it pass through if (e.keyCode == e.which) keyCode = null; // else if not a char we don't know what this is; let it pass through else if (e.charCode != e.which) keyCode = void 0; // else a char - set it else keyCode = e.which; } // do whatever you want based on keyCode... // now for the return if (window.event) { e.returnValue = returnVal; return returnVal; // not really necessary but I'm trying to get Safari to work } else return returnVal; } } This method is invoked on a text field, onKeyPress='return onlyNumbersXB(this, event, mask)' My problem, as posted elsewhere, is getting Safari to behave itself. It has window.event and behaves that way. It sets e.returnValue appropriately. It still doesn't recognize "false" and let's the key pass. Anyone? Julia "Ron Brooks" <ronbrooks@dendress.com>wrote in message QuoteIs there any way in JavaScript to determine which key has been pressed |
| Richard Cornford
Registered User |
2003-10-08 01:02:00 PM
Re:KeyPress Events in IE
"Jules" <jules9514@yahoo.com>wrote in message
<snip> QuoteMy problem, as posted elsewhere, is getting Safari to behave itself. (boolean) - cancelable - property? Also (assuming that is no-go) have you considered trying to cancel onkeydown and/or onkeyup instead of (or in addition to) onkeypress? Richard. - |
| Jules
Registered User |
2003-10-08 01:05:00 PM
Re:KeyPress Events in IE
"Richard Cornford" <Richard@litotes.demon.co.uk>wrote in message
Quote"Jules" <jules9514@yahoo.com>wrote in message do? QuoteAlso (assuming that is no-go) have Canceling keystrokes is something that whole documents have been written about regarding IE and Netscape. I can't believe that I can be the only person struggling with this with Safari... Julia - |
| Richard Cornford
Registered User |
2003-10-08 02:25:00 PM
Re:KeyPress Events in IE
"Jules" <jules9514@yahoo.com>wrote in message
instructions often make it unnecessary and you usually won't catch paste<snip> QuoteI did try preventDefault() -- no go. I don't know what you point in calling its - preventDefault - method as the event cannot be cancelled. QuoteAlso (assuming that is no-go) have you considered trying to That's why we went with onKeyPress. Canceling keystrokes is something that whole documents have been written about regarding IE and Netscape. I can't believe that I can be the only person struggling with this with Safari... Validating user input as they type is problematic at best, clear operations so the field would still need to be validated onsubmit anyway. These days I probably would not bother so I do not know any currently recommended method. However, though I don't have access to a Mac at present so I cannot test Safari, I would expect Konqueror (on which Safari is based) to exhibit the same problem, so if you could make up a minimal test case page that does exactly what you require where it is working now (and preferably nothing else) and post it (or a URL to an online version) then I (and/or someone else) would probably have a look at it and see if it cannot be made to do what you want. QuoteJulia Richard. - |
