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.
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?
I have a requirement to force the pageUp and pageDown keys to function the same as the arrowUp and arrowDown. I believe I'm ok with IE but have issues with setting the value for FireFox ...specifically line: evt.which=38; and line evt.which=40; -the "which" seems to only have a getter-
try{ if (window.document.addEventListener) { window.document.addEventListener("keydown", reviseKeyFunctions, false); }else{
Here is an answer for those who are looking for a keystroke evaluation script that works in Internet Explorer (IE 5.5, 6.0, 7.0 for PC--IE 4.0, 5.2 for Mac), Mozilla Firefox (Windows, Linux, and Apple Macintosh), Safari, Opera, and other off-brand web browsers.
I have gone through many groups trying to find code that didn't break in Firefox--yet still worked in other browsers. Although many people give input on this topic, few are correct in their handling of the events to give the correct results across the board.
I am a Webmaster, and although I have worked with much JavaScript, I do not claim to be an expert on this topic--so feel free to post any improvements that you can make.
Here's the test code, this snippet designed to force numeric-only input in any browser, with the exception of a couple keys that are still needed for form navigation (such as Tab--although this can be tailored to your needs by adding more exceptions):
---SNIP_01--- <script language="JavaScript"> function CheckNumericKeyInfo($char, $mozChar) { if($mozChar != null) {// Look for a Mozilla-compatible browser if(($mozChar >= 48 && $mozChar <= 57) || $mozChar == 0 || $char == 8 || $mozChar == 13) $RetVal = true; else { $RetVal = false; alert('Please enter a numeric value.'); } } else {// Must be an IE-compatible Browser if(($char >= 48 && $char <= 57) || $char == 13) $RetVal = true; else { $RetVal = false; alert('Please enter a numeric value.'); } } return $RetVal; } </script> ---END_01---
I have personally tested this on PC, Mac, and Linux systems in every Web browser that I can get my hands on. It's far easier than the other scripts that I've found, and you can just add "alert('keyCode: ' + $char)" to find any other keycodes you might want to allow if you don't know them off-hand. Obviously there is room to add a larger exception list if you have need of it, and it might be better to just set $RetVal to TRUE in the else and add an else if for IE, but my use didn't require it.
I am trying to use the jquery keydown event.I wan to fade in a div that is a form then when the user presses keycode 17 meaning control key this div and form will fade in at the center of the screen.here is the code I have:
This is in a php file and echoing the code. So the " " ignore it it's just saying to php that those are to be echoed as " " This code isn't working. I would press control key but no fade in occurs. I include this php file to all my websites webpages which are php files.
keyCode and which will get the same value, so anything different? <script> $(function() { $(window).keydown(function(e) { console.log(e.keyCode); console.log(e.which); }); }); </script>
I have a 3 textareas that when the user presses the spacebar I would like for the code to execute a TAB to move between them instead. My code works if I make the replacement keycode an number or letter but it wont work if I use TAB. The browser is IE. code...
I got this (piece of) script from 'DHTML Utopia - Modern Webdesign - Using Javascript & DOM'.
function aKeyWasPressed(e) { if (window.event) { var key = window.event.keyCode; } else { var key = e.keyCode; } alert('You pressed the key: ' + String.fromCharCode(key)); }
It is example of adding an eventlistener to a textarea. The events works alright, but when I press 'a' the alert gives me 'A', when I press Ǝ' I get 'h', when I press Ɔ' I get ''', when I press 'à' I get Ɔ', .... Has probably something to do with the fact that I don't live in the UK or USA. But it shouldn't matter; a key is a key.
Basically we are trying to simulate the tab key when the down arrow key is pressed. (we know there are other way to control focus flow but we use a lot of dynamic jsp fields, that will make the flow control a nightmare, we just want basic tabbing from the arrow key)
1)We are able to capture a onkeydown event and reasign it with another key value with no problem within an html document without a form.
example:
var ieKey = event.keyCode;
if (ieKey == 40) { event.keyCode = 9; }
however as soon as we insert a form tag in the document, this stops functioning. The asignment seems to be fine as an alert clearly shows, but the instruction seems to be ignored. Code:
I have an input field with onkeyup event that displays the code of the key the user pressed. The thing is, this works for all the keyboard buttons except for the ENTER key.
I got this problem with live() event.I have used it as follows.
$(".addressDiv span").live("mouseover", function(){ //clickable function here...... ------------------------ });
I have used the live() event to trigger the function on mouseover in the dynamically added elements. But the problem i got is that once the live event is called it takes the class of the element and stores. And when the class of that particular element is changed dynamically the live() event does not detect the new classed added dynamically, instead it takes the former class. Live() event does not update the class.
I have an iframe that includes a button: <input type="button" value="close this window" onclick="window.close();" >
I would like to detect the iframe close event from the parent window, I was using this code but I did something wrong because the temp function is fired every time the parent page loads:
function temp(){ alert('the iframe was closed'); } function setup(){ var myIFrame = document.getElementById("iframe1"); if (myIFrame.addEventListener) { myIFrame.addEventListener('onclose', temp(), false); }else if (myIFrame.attachEvent) { myIFrame.attachEvent ('onclose',temp); }else{ myIFrame.onclose=temp(); } } window.onload=setup;
As far as I understood, stopPropagation() is supposed to stop events bubbling 'up' though the element tree (through parent elements). Eg. If I use stopPropagation() on a click event on an anchor element in a list, the event would not be triggered on the list. In my code I have a popup div, that needs to have stopPropagation(), as a click on the document (everywhere other than the popup) will hide it. When I add an element to the popup that has a live click event, the live click event is never called, even though it is a child element of the popup. Shouldn't the live click get called first? If I remove the stopPropagation all is well.. some code:
I'm currently facing a weird issue with the onchange event. I have a web application where each blur event makes a call the webserver to store the value of the textfield. I only want to trigger that ajax call when something has changed, so i track the onchange event on each textfield to set a flag if something has changed.
The onchange event always fires to first time when i click outside of a textfield even if i didn't change anything in the field.
I narrowed it down to the following: A prefilled textfield always fires the onchange-event the first time you leave the textfield. An initially empty textfield does not fire the onchange event.
Is there a generic way to fire an event when the state/value of a checkbox is changed by another event - i.e. not a user action. In this scenario, I have a set of checkboxes with a "select all" checkbox. I have the code written such that checking or unchecking the "select all" checkbox updates the state of all of the checkboxes below.
The extra requirement here is that some of these checkboxes have "children". So, when you check one of these, its children are automatically checked as well. So, what I need to do is check the main "select all" checkbox, which would then check all of the immediate children, which would then check all of their immediate children. I tried both an onchange and onclick event, but neither seem to be firing.
$(function(){ $('input').bind('keypress',null,b).bind('change',null,a); }); function a(){
[Code].....
this script bind both keypress and change of the text box to functions b and a. at keypress event handler if user type a char on input box the value of input box change to x and the user char discarded. In this case we expected to run the onchange (change) event because the textbox value is changed BUT this doesn't happen.