'How to capture cmd + enter event in jquery

I need to determine when a user presses cmd+enter after typing a text into a textarea. I'm using jquery.

Here's what I tried:

<textarea id="checkMetaKey"></textarea>
<div id="display"></div>

$( "#checkMetaKey" ).keyup(function( event ) {
  $( "#display" ).text(event.metaKey + " " + event.keyCode);
});

JSFiddle: http://jsfiddle.net/WQG2b/

I would expect that to display "true 13" when cmd+enter is clicked. It's not the case however.

The only way I can get metaKey to be true is when I click CMD only or CMD+ALT or CMD+CTRL.

How do I capture a CMD+ENTER event?

Similar functionality seems to be working when I try it on Facebook, I'm able to submit message text using CMD+ENTER.



Solution 1:[1]

Use keydown. Also you should compare event.keyCode == 13

$("#checkMetaKey").keydown(function (event) {
    $("#display").text((event.metaKey || event.ctrlKey) && event.keyCode == 13);
});

$("#checkMetaKey").keydown(function (event) {
    $("#display").text((event.metaKey || event.ctrlKey) &&  event.keyCode == 13);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<textarea id="checkMetaKey"></textarea>
<div id="display"></div>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1