Ctrl +在TEXTAREA中inputjQuery

当光标位于TEXTAREA内并按下Ctrl + Enter时,如何触发某些内容? 使用jQuery 。 谢谢

您可以使用event.ctrlKey标志来查看是否按下了Ctrl键,如下所示:

 $('#textareaId').keydown(function (e) { if (e.ctrlKey && e.keyCode == 13) { // Ctrl-Enter pressed } }); 

在这里查看上面的代码片段。

其实这一个伎俩,并在所有的浏览器中工作:

 if ((event.keyCode == 10 || event.keyCode == 13) && event.ctrlKey) 

链接到JS小提琴

通用解决scheme

也支持OS X。

 if ((e.ctrlKey || e.metaKey) && (e.keyCode == 13 || e.keyCode == 10)) { // do something } 

我发现其他人的答案不完整或不兼容浏览器。

此代码适用于谷歌浏览器。

 $(function () { $(document).on("keydown", "#textareaId", function(e) { if ((e.keyCode == 10 || e.keyCode == 13) && e.ctrlKey) { alert('ctrl+enter'); } }); }); 

这可以扩展到一个简单但灵活的JQuery插件,如下所示:

 $.fn.enterKey = function (fnc, mod) { return this.each(function () { $(this).keypress(function (ev) { var keycode = (ev.keyCode ? ev.keyCode : ev.which); if ((keycode == '13' || keycode == '10') && (!mod || ev[mod + 'Key'])) { fnc.call(this, ev); } }) }) } 

从而

 $('textarea').enterKey(function() {$(this).closest('form').submit(); }, 'ctrl') 

应该提交一个表单,当用户按下CTRL-input焦点在该表单的textarea。

(感谢https://stackoverflow.com/a/9964945/1017546

 $('my_text_area').focus(function{ set_focus_flag }); //ctrl on key down set flag //enter on key down = check focus flag, check ctrl flag 

首先你必须在按下Ctrl时设置一个标志,做这个onkeydown。 那么你必须检查进入的keydown。 当您看到Ctrl的一个键时,取消设置标志。