Frage Strg + Geben Sie jQuery in TEXTAREA ein


Wie trigger ich etwas, wenn der Cursor innerhalb ist? TEXTAREA und Strg+Eingeben wird gedrückt? Verwenden jQuery. Vielen Dank


75
2017-11-05 22:45


Ursprung


Antworten:


Du kannst den ... benutzen event.ctrlKey Flagge, um zu sehen, ob Strg Taste gedrückt, etwa so:

$('#textareaId').keydown(function (e) {

  if (e.ctrlKey && e.keyCode == 13) {
    // Ctrl-Enter pressed
  }
});

Überprüfen Sie das obige Snippet Hier.


107
2017-11-05 22:55



Eigentlich funktioniert dieser Trick und funktioniert in allen Browsern:

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

Link zu js Geige


119
2018-02-18 16:52



Universelle Lösung

Unterstützt auch OS X.

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

35
2018-04-07 14:16



Ich fand Antworten von anderen entweder unvollständig oder nicht browserübergreifend.

Dieser Code funktioniert Google Chrome.

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

4
2018-05-15 04:39



Dies kann auf ein einfaches, aber flexibles JQuery-Plugin erweitert werden:

$.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);
            }
        })
    })
}

So

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

sollte ein Formular einreichen, wenn der Benutzer ctrl-enter mit dem Fokus auf das Textfeld des Formulars drückt.

(Mit Dank an https://stackoverflow.com/a/9964945/1017546)


2
2018-01-27 02:14



$('my_text_area').focus(function{ set_focus_flag });

//ctrl on key down set flag

//enter on key down = check focus flag, check ctrl flag

0
2017-11-05 22:56



Zuerst musst du eine Flagge setzen Strg gedrückt wird, tun Sie dies onkeydown. dann musst du den Keydown von Enter überprüfen. Deaktivieren Sie die Markierung, wenn Sie eine Tastenkombination sehen Strg.


0
2017-11-05 22:47



Vielleicht ein bisschen spät zum Spiel, aber hier ist was ich benutze. Es wird auch das Senden des Formulars erzwingen, das das aktuelle Ziel des Cursors ist.

$(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();
    }
});

0
2017-12-18 19:18