커서가 TEXTAREA 내에 있고 Ctrl+ Enter를 누르면 어떻게 트리거 합니까? jQuery 사용 . 감사
답변
다음과 같이 event.ctrlKey
플래그를 사용하여 Ctrl키가 눌 렸는지 확인할 수 있습니다 .
$('#textareaId').keydown(function (e) {
if (e.ctrlKey && e.keyCode == 13) {
// Ctrl-Enter pressed
}
});
답변
답변
범용 솔루션
이것은 macOS도 지원합니다 : Ctrl+ Enter와 ⌘ Command+ Enter가 모두 허용됩니다.
if ((e.ctrlKey || e.metaKey) && (e.keyCode == 13 || e.keyCode == 10)) {
// do something
}
답변
다른 사람의 답변이 불완전하거나 브라우저 간 호환되지 않는 것을 발견했습니다.
이 코드는 Google 크롬에서 작동합니다.
$(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를 누르면 양식을 제출해야합니다.
답변
$('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을 수행합니다. 그런 다음 Enter 키를 확인해야합니다. 에 대한 키업이 표시되면 플래그를 설정 해제하십시오 Ctrl.