如何在jquery中捕获cmd+enter事件

5
我可以帮助您翻译技术相关内容,以下是需要翻译的内容:

我需要确定用户在文本区域中输入文本后按下cmd+enter的时间。我正在使用jQuery。

这是我的尝试:

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

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

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

当点击cmd+enter时,我期望它显示"true 13"。但事实并非如此。

唯一能使metaKey为真的方法是单击CMD或CMD+ALT或CMD+CTRL。

如何捕获CMD+ENTER事件?在Facebook上尝试时,类似的功能似乎可行,我可以使用CMD+ENTER提交消息文本。


尝试使用keypress而不是keyup。 - Andrew
1个回答

18
使用 keydown。同时,您应该比较 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>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接