9 ответов:
можно использовать
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 скрипку
универсальное решение
поддерживает OS X, а также.
if ((e.ctrlKey || e.metaKey) && (e.keyCode == 13 || e.keyCode == 10)) { // do something }
Я нашел ответы других либо неполные, либо не совместимые с кросс-браузером.
этот код работает в google chrome.
$(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-enter с фокусом на текстовой области этой формы.
(С благодарностью 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 enter. снимите флаг, когда вы видите keyup для Ctrl.
может быть, немного поздно в игре, но вот что я использую. Он также принудительно отправит форму, которая является текущей целью курсора.
$(document.body).keypress(function (e) { var $el = $(e.target); if (e.ctrlKey && e.keyCode == 10) { $el.parents('form').submit(); } else if (e.ctrlKey && e.keyCode == 13) { $el.parents('form').submit(); } });
Comments
<pre>
<code class="language-javascript">$('body').on('keydown', 'some-selector', function(e){
var Key = (e.which || e.keyCode || 0);
var Shift = (e.shiftKey);
var Ctrl = (e.ctrlKey || e.metaKey);
var Tab = (Key === 9);
var Enter = (Key === 13 || Key === 10);
var Up = (Key === 38);
var Down = (Key === 40);
var Left = (Key === 37);
var Right = (Key === 39);
if (Enter) { do something... }
if (Ctrl && Enter) { do something... }
...
});</code></pre>
<p> </p>