Jason
Jason

Reputation: 794

Keyboard sequence to click on button

I would like a system administrator to easily create new accounts in an application. I was thinking keys alt and shift would trigger the "Create New User" button or defaultButton2 in my application. I can get one key to work, but combining both keys doesn't seem to work.

$(document).ready(function () {
  $("input").bind("keydown", function (event) {
    var keycode = (event.keyCode ? event.keyCode : 
          (event.which ? event.which : event.charCode));
    if (keycode == 16 && keycode == 18) {
        document.getElementById('defaultButton2').click();
        return false;
    } else {
        return true;
    }
  });
});

Upvotes: 1

Views: 417

Answers (2)

Sumurai8
Sumurai8

Reputation: 20737

The keydown event (mdn) has booleans for the shiftkey, altkey and control key to detect when combinations of buttons are pressed. You can therefore just check those. The keyCode is only for the last key pressed.

If you want to detect other keys, e.g. if "a" and "s" are pressed at the same time, you need to mess around with custom keydown and keyup events and track things yourself.

$('body').on( 'keydown', function(e) {
  if( e.altKey && e.shiftKey ) {
    console.log( "Both pressed!" );
  }
} );
body {
  background-color: #DDDDDD;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Click Here

Upvotes: 1

Manuel B.
Manuel B.

Reputation: 115

You almost did it right...

$(document).ready(function(){
  $("input").keydown(function(e) {
    // 18 is the key for alt
    if(e.keyCode == 18 && e.shiftKey) {
        $("button").click();
    }
  });
});

Here is a working JSFiddle and if you're looking for the JS keycodes have a look here.

Upvotes: 0

Related Questions