カーソルがTEXTAREA内にあり、Ctrl+Enterが押されたときに何かをトリガーするにはどうすればよいですか? jQueryを使用します。ありがとう
64906 次
8 に答える
148
実際、これはトリックを実行し、すべてのブラウザで機能します。
if ((event.keyCode == 10 || event.keyCode == 13) && event.ctrlKey)
jsフィドルへのリンク。
ノート:
于 2012-02-18T16:52:33.877 に答える
133
event.ctrlKeyフラグを使用して、次のCtrlようにキーが押されているかどうかを確認できます。
$('#textareaId').keydown(function (e) {
if (e.ctrlKey && e.keyCode == 13) {
// Ctrl-Enter pressed
}
});
上記のスニペットをここで確認してください。
于 2009-11-05T22:55:19.557 に答える
4
他の人の回答が不完全であるか、ブラウザ間の互換性がないことがわかりました。
このコードは Google Chrome で動作します。
$(function ()
{
$(document).on("keydown", "#textareaId", function(e)
{
if ((e.keyCode == 10 || e.keyCode == 13) && e.ctrlKey)
{
alert('ctrl+enter');
}
});
});
于 2014-05-15T04:39:06.053 に答える
2
これは、次のように単純だが柔軟な 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 を押したときに、フォームを送信する必要があります。
于 2015-01-27T02:14:35.577 に答える
0
Ctrlまず、が押されたときにフラグを設定する必要があります。これはキーダウンで行います。次に、Enterキーを押す必要があります。のキーアップが表示されたら、フラグの設定を解除しますCtrl。
于 2009-11-05T22:47:40.707 に答える
0
$('my_text_area').focus(function{ set_focus_flag });
//ctrl on key down set flag
//enter on key down = check focus flag, check ctrl flag
于 2009-11-05T22:56:23.603 に答える