javascript - Ctrl+टेक्स्ट में jQuery दर्ज करें




html hotkeys (6)

जब कर्सर टेक्सटेरा के भीतर होता है तो मैं कुछ कैसे ट्रिगर करूं और Ctrl + Enter दबाया जाता है? JQuery का उपयोग करना धन्यवाद


इसे एक साधारण-लेकिन-लचीला 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://.com/a/9964945/1017546 के लिए धन्यवाद के साथ)


दरअसल यह एक चाल है और सभी ब्राउज़रों में काम करता है:

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

जेएस पहेली के लिए लिंक


शायद खेल के लिए थोड़ा देर हो चुकी है, लेकिन मैं इसका उपयोग करता हूं। यह उस फॉर्म को सबमिट करने के लिए भी मजबूर होगा जो कर्सर का वर्तमान लक्ष्य है।

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

सबसे पहले आपको Ctrl दबाए जाने पर ध्वज सेट करना होगा, यह ऑनकीडाउन करें। तो आपको प्रवेश की कुंजीडाउन जांचनी होगी। जब आप Ctrl के लिए एक कुंजीपटल देखते हैं तो ध्वज को अनसेट करें।


यह देखने के लिए कि Ctrl कुंजी दबाया गया है, आप event.ctrlKey ध्वज का उपयोग कर सकते हैं, ऐसा कुछ:

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

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

उपर्युक्त स्निपेट here


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

//ctrl on key down set flag

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




hotkeys