Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JQuery or JavaScript: How determine if shift key being pressed while clicking anchor tag hyperlink?

I have an anchor tag that calls a JavaScript function.

With or without JQuery how do I determine if the shift key is down while the link is clicked?

The following code does NOT work because keypress is only fired if a "real key" (not the shift key) is pressed. (I was hoping it would fire if just the shift key alone was pressed.)

var shifted = false;  $(function() {                                $(document).keypress(function(e) {         shifted = e.shiftKey;         alert('shiftkey='+e.shiftkey);     });      $(document).keyup(function(e) {         shifted = false;     }); }  ...  function myfunction() {   //shift is always false b/c keypress not fired above } 
like image 765
Pete Alvin Avatar asked Sep 23 '10 17:09

Pete Alvin


People also ask

How can you tell if a shift is pressed?

In the above code, shiftKey property is used to check if the user pressed 'SHIFT' or not. The shiftKey property returns a boolean value indicating whether or not the “SHIFT” key was pressed when a key event was triggered. Similarly, you can use altKey , ctrlKey , metaKey properties to detect ALT, CTRL, META keys.

How do you detect if a key is being pressed in JavaScript?

Using JavaScript In plain JavaScript, you can use the EventTarget. addEventListener() method to listen for keyup event. When it occurs, check the keyCode 's value to see if an Enter key is pressed.

How do you check if a key is pressed in jQuery?

To check if an “enter” key is pressed inside a textbox, just bind the keypress() to the textbox. $('#textbox'). keypress(function(event){ var keycode = (event.

How do you find shift click?

The mouseEvent shiftKey property is used to define whether the shift key is pressed or not. It is a boolean value. When the shift key is pressed then on click of the mouse left button, it returns true and if the shift key is not pressed then it returns false.


2 Answers

    $(document).on('keyup keydown', function(e){shifted = e.shiftKey} ); 
like image 199
hluk Avatar answered Oct 19 '22 04:10

hluk


Here is the key code for each key stroke in JavaScript. You can use that and detect if the user has pressed the Shift key.

backspace           8 tab                 9 enter               13 shift               16 ctrl                17 alt                 18 pause/break         19 caps lock           20 escape              27 page up             33 page down           34 end                 35 home                36 left arrow          37 up arrow            38 right arrow         39 down arrow          40 insert              45 delete              46 0                   48 1                   49 2                   50 3                   51 4                   52 5                   53 6                   54 7                   55 8                   56 9                   57 a                   65 b                   66 c                   67 d                   68 e                   69 f                   70 g                   71 h                   72 i                   73 j                   74 k                   75 l                   76 m                   77 n                   78 o                   79 p                   80 q                   81 r                   82 s                   83 t                   84 u                   85 v                   86 w                   87 x                   88 y                   89 z                   90 left window key     91 right window key    92 select key          93 numpad 0            96 numpad 1            97 numpad 2            98 numpad 3            99 numpad 4            100 numpad 5            101 numpad 6            102 numpad 7            103 numpad 8            104 numpad 9            105 multiply            106 add                 107 subtract            109 decimal point       110 divide              111 f1                  112 f2                  113 f3                  114 f4                  115 f5                  116 f6                  117 f7                  118 f8                  119 f9                  120 f10                 121 f11                 122 f12                 123 num lock            144 scroll lock         145 semi-colon          186 equal sign          187 comma               188 dash                189 period              190 forward slash       191 grave accent        192 open bracket        219 back slash          220 close braket        221 single quote        222 

Not all browsers handle the keypress event well, so use either the key up or the key down event, like this:

$(document).keydown(function (e) {     if (e.keyCode == 16) {         alert(e.which + " or Shift was pressed");     } }); 
like image 27
Jsinh Avatar answered Oct 19 '22 05:10

Jsinh