JQuery के साथ "हटाएं" कुंजी कैप्चर करना


118

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

$(document).keypress(function(e) {
    console.log(e.which);       
});

लगता है कि Deleteकुंजी को पकड़ने का एक तरीका है , लेकिन यह एक अस्पष्ट शब्द है, इसलिए Google इसके लिए बहुत मददगार साबित नहीं हो रहा है।

जवाबों:


202

आपको keypressईवेंट का उपयोग नहीं करना चाहिए , लेकिन keyupया keydownईवेंट क्योंकि keypressइवेंट वास्तविक (प्रिंट करने योग्य) वर्णों के लिए लक्षित है। keydownएक निचले स्तर पर नियंत्रित किया जाता है, इसलिए यह सभी गैर-कुंजीयन कुंजी को कैप्चर करेगा जैसे deleteऔर enter


keyupकाम बेहतर होगा।
लोकलहोस्ट

2
@atilkan नहीं, उपयोगकर्ता पर प्रतिक्रिया की उम्मीद है keydown, नहीं keyup। जब एक कुंजी को दबाया जाता है तो सभी पाठ संपादक कार्रवाई करते हैं, जब यह जारी नहीं होता है।
फिलिप लेबेर्ट

1
@PhilippeLeybaert मेरे मामले में प्रोग्राम अंतिम दबाए गए चार को नहीं पकड़ सकता है।
लोकलहोस्ट

82
$('html').keyup(function(e){
    if(e.keyCode == 46) {
        alert('Delete key released');
    }
});

स्रोत: जावास्क्रिप्ट चार कोड प्रमुख कोड www.cambiaresearch.com से


18
यह होना चाहिए alert('Delete Key Released')
वाल्डिनेज

यदि कोई व्यक्ति टॉड द्वारा सुझाए गए कीप के बजाय कीपर का उपयोग करता है तो आपको कीकोड == 46 ईवेंट के विरुद्ध मिलेगा। कुंजी (डॉट)। लेकिन यह keyUp के साथ अच्छी तरह से काम करता है। धन्यवाद
Mubashar

34

जावास्क्रिप्ट कीकोड

  • e.keyCode == 8 के लिएbackspace
  • e.keyCode == पीसी में forward backspaceया deleteबटन के लिए 46

इस विवरण को छोड़कर कॉलिन एंड टॉड का जवाब काम कर रहा है।


4
यह e.keyCode और e.KeyCode नहीं होना चाहिए
जेरोम

16

event.key === "हटाएं"

हाल ही में और अधिक क्लीनर: उपयोग करें event.key। कोई और अधिक मनमानी संख्या कोड!

नोट: पुराने गुण ( .keyCodeऔर .which) पदावनत हैं।

document.addEventListener('keydown', function(event) {
    const key = event.key; // const {key} = event; ES6+
    if (key === "Delete") {
        // Do things
    }
});

मोज़िला डॉक्स

ब्राउज़रों का समर्थन किया

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.