Ctrl + TEXTAREA में jQuery दर्ज करें


92

जब TEXTAREA और Ctrl+ Enterको दबाया जाता है तो कर्सर को कैसे ट्रिगर किया जाता है? JQuery का उपयोग करना । धन्यवाद


आपके द्वारा स्वीकार किया गया उत्तर काम नहीं करता है। कृपया अपना स्वीकृत उत्तर
पेटेरुला

जवाबों:


128

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

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

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

उपरोक्त स्निपेट यहां देखें


15
यह Google Chrome में काम नहीं करता है। जब Ctrl + Enter दबाया जाता है तो कुंजी कोड होता है 10, नहीं 13
ज़्नार्कस

39
यह काम नहीं करता। यारोस्लाव याकोवले का समाधान नीचे ठीक से काम करता है। कृपया लोगों का समय बचाने के लिए स्वीकृत उत्तर बदलें।
फिल रिकेट्स

1
@ रीप्ले आपने किस पर्यावरण का परीक्षण किया है? क्या कीकोड 10 के बारे में कोई दस्तावेज है?
सांग्युन ली

कीकोड 10 क्रोम पर अब और नहीं होना चाहिए, देखें bugs.chromium.org/p/chromium/issues/detail?id=79407
swissspidy

जब ट्रिगर keypressइवेंट, keydownkeyup
कीकोड

137

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

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

js fiddle का लिंक ।

टिप्पणियाँ:

  • विंडोज और लिनक्स पर क्रोम में, 10 के enterरूप में पंजीकृत किया जाएगा keyCode, न कि 13 ( बग रिपोर्ट )। इसलिए हमें या तो जाँच करने की आवश्यकता है।
  • ctrlKeyहै controlविंडोज, लिनक्स और MacOS (नहीं पर command)। यह भी देखें metaKey

फ़ायरफ़ॉक्स 27 में फ़िडेल काम नहीं करता है, क्या गलत है?
कोडमैनएक्स

4
@ यारोस्लाव: क्या आप कृपया बता सकते हैं कि आपके उत्तर में "event.keyCode == 10" का क्या उपयोग है।
शशांक.गुप्ता

3
अगर कोई अभी भी कीकोड 10 और अन्य क्रोम सामान के बारे में सोच रहा है तो इसे पढ़ें ।
user2422869

1
@YaroslavYakovlev ctrlKeyमैक पर कमांड कुंजी के अनुरूप है?
जैकब स्टैम

2
मैक का समर्थन करने के लिए भी:if ((e.keyCode == 10 || e.keyCode == 13) && (e.ctrlKey || e.metaKey))
इल्या मन्याहिन

81

सार्वभौमिक समाधान

यह macOS को भी सपोर्ट करता है: Ctrl+ Enterऔर ⌘ Command+ दोनों Enterको स्वीकार किया जाएगा।

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

15
इस उत्तर को अनदेखा न करें क्योंकि यह एक कम अंक मिला है, यह सिर्फ एक नया उत्तर है, यह वास्तव में बेहतर है।
डेविड बेल

1
पहले भाग की व्याख्या: macOS पर, e.ctrlKeyपता लगाता है ⌃ Controlऔर e.metaKeyपता लगाता है ⌘ Command। यदि आप व्यवहार को ट्रिगर करने के लिए Ctrl-Enter और Command-Enter दोनों चाहते हैं तो इसका उपयोग करें।
रोरी ओ'केन

क्या आप बता सकते हैं कि आप ए e.keyCodeका 10मतलब स्वीकार क्यों करते हैं इसके अलावा दर्ज करें 13? MDN keyCodeदस्तावेज़ीकरण केवल सूचियों 13दर्ज के लिए एक संभावित मूल्य के रूप में, अनेक ब्राउज़र और ऑपरेटिंग सिस्टम के पार का परीक्षण किया।
रोरी ओ'केन

1
@ RoryO'Kane विंडोज और लिनक्स पर क्रोम के कुछ संस्करण, मूल्य 10 का उपयोग करते हैं, जाहिरा तौर पर।
फ्लिम्ड

4

मुझे दूसरों के जवाब अधूरे मिले या क्रॉस-ब्राउज़र संगत नहीं।

यह कोड google chrome काम करता है।

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

2
क्या आप आगे स्पष्टीकरण जोड़कर अपने उत्तर को बेहतर बनाने पर विचार कर सकते हैं? धन्यवाद :) नहीं तो यह सिर्फ निम्न गुणवत्ता वाले प्रश्न का एक निम्न गुणवत्ता वाला उत्तर होगा।
थियोडोडिस

@ वल्मा: क्या आप बता सकते हैं कि आपके उत्तर में "event.keyCode == 10" का क्या उपयोग है।
शशांक.गुप्ता

1
मुझे कॉपी और
पेस्टर

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 दबाए जाने पर एक फ़ॉर्म सबमिट करना चाहिए।

( Https://stackoverflow.com/a/9964945/1017546 से साभार )


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

0

सबसे पहले आपको एक झंडा Ctrlलगाना होगा, जब दबाया जाएगा, इस onkeydown करें। फिर आपको एंटर की काडड को चेक करना होगा। झंडा अनसेट जब आप के लिए एक KeyUp देखना Ctrl


0

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

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

आप एकल के लिए " if... else if" को सरल बना सकते हैं if (e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13))
रोरी ओ'केन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.