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: /
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.
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.
Share Improve this question asked Dec 26, 2013 at 11:06 vrepsysvrepsys 2,2134 gold badges27 silver badges39 bronze badges 1- Try use keypress, not keyup – Andrew Commented Dec 26, 2013 at 11:12
1 Answer
Reset to default 21Use 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>