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。
$('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的一个键时,取消设置标志。