Pertanyaan Ctrl + Masukkan jQuery di TEXTAREA


Bagaimana cara memicu sesuatu ketika kursor berada di dalam TEXTAREA dan Ctrl+Memasukkan ditekan? Menggunakan jQuery. Terima kasih


75
2017-11-05 22:45


asal


Jawaban:


Anda dapat menggunakan event.ctrlKey bendera untuk melihat apakah Ctrl kunci ditekan, sesuatu seperti ini:

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

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

Periksa cuplikan di atas sini.


107
2017-11-05 22:55



Sebenarnya yang satu ini melakukan trik dan berfungsi di semua browser:

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

tautan ke js fiddle


119
2018-02-18 16:52



Solusi universal

Mendukung OS X juga.

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

35
2018-04-07 14:16



Saya menemukan jawaban orang lain yang tidak lengkap atau tidak kompatibel lintas-browser.

Kode ini berfungsi 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



Ini dapat diperluas ke plugin JQuery sederhana namun fleksibel seperti:

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

Demikian

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

harus menyerahkan formulir ketika pengguna menekan ctrl-enter dengan fokus pada textarea formulir itu.

(Terima kasih kepada 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



pertama Anda harus mengatur bendera saat Ctrl ditekan, lakukan ini onkeydown. maka Anda harus memeriksa keydown dari enter. unset bendera ketika Anda melihat kunci untuk Ctrl.


0
2017-11-05 22:47



Mungkin sedikit terlambat ke gim, tapi inilah yang saya gunakan. Ini juga akan memaksa mengirimkan formulir yang merupakan target kursor saat ini.

$(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