OnKeyPress बनाम। onKeyUp और onKeyDown


329

इन तीनों घटनाओं में क्या अंतर है? गुगली करने पर मैंने पाया कि:

  • onKeyDownजब उपयोगकर्ता किसी कुंजी को दबाता है तो यह घटना शुरू हो जाती है।
  • onKeyUpजब उपयोगकर्ता एक कुंजी जारी करता है, तो यह घटना शुरू हो जाती है।
  • onKeyPressघटना शुरू हो रहा है जब उपयोगकर्ता प्रेस और रिलीज के एक प्रमुख ( onKeyDownके बाद onKeyUp)।

मैं पहले दो को समझता हूं, लेकिन जैसा onKeyPressहै वैसा नहीं है onKeyUp? क्या यह कुंजी ( onKeyUp) को दबाए बिना जारी करना संभव है ( onKeyDown)?

यह थोड़ा भ्रमित करने वाला है, क्या कोई मेरे लिए यह स्पष्ट कर सकता है?


3
मैंने पाया कि अगर मैं TAB कुंजी को दबाए रखता हूं तो यह सभी क्षेत्रों के माध्यम से निरंतर चक्र करता है और केवल 'onkeydown' को ट्रिगर करता है।
एनयू एवरेस्ट

23
कीपर ईवेंट टाइप किए जा रहे एक चरित्र का प्रतिनिधित्व करता है जिसे इनपुट के लिए इस्तेमाल किया जा सकता है, जैसे कि 'ए', 'डी', 'पाउंड', '©', और इसी तरह। दूसरी ओर, कीडाउन और की-अप इवेंट्स में टाइप की जा रही किसी भी कुंजी का प्रतिनिधित्व करते हैं, जिसमें बैकस्पेस, टैब, अप, डाउन, होम, एंड जैसी चीजें शामिल हैं।
स्किनक 7

2
"(या यह कुंजी (KeyDp) को दबाए बिना (KeyDown) को जारी करना संभव है?)" - हाँ। उदाहरण के लिए, टैब कुंजी: कीप इवेंट को कीडाउन के समान तत्व द्वारा कैप्चर नहीं किया जा सकता है।
सेल्फ एविडेंट

जवाबों:


191

मूल रूप से इस उत्तर में उपयोग किए गए लिंक के लिए यहां देखें ।

उस लिंक से:

सिद्धांत रूप में, onKeyDownऔर onKeyUpईवेंट कुंजी को दबाए जाने या जारी किए जाने का प्रतिनिधित्व करते हैं, जबकि onKeyPressघटना टाइप किए जा रहे चरित्र का प्रतिनिधित्व करती है। सिद्धांत का कार्यान्वयन सभी ब्राउज़रों में समान नहीं है।



मैं लिंक किए गए पृष्ठ को नहीं देख सकता, लेकिन यदि आप किसी भी प्रकार के सत्यापन के लिए इसका उपयोग करने की योजना बनाते हैं, तो 'एक चरित्र टाइप किया जा रहा है' के बारे में बिंदु एक महत्वपूर्ण है। जब उपयोगकर्ता किसी वर्ण को हटाता है तो कीपर ईवेंट फायर नहीं करता है , इसलिए आपकी मान्यता फायर नहीं होगी।
टोनी मेरीफील्ड

@ टोनी मेरीफील्ड - लिंक मेरे लिए ठीक काम कर रहा है, मैंने इसे फिर से जांचा।
dcp

1
@dcp - हां, मुझे सही रास्ते पर लाने के लिए पर्याप्त संकेत था। मैंने बस अपनी टिप्पणी को इस बिंदु पर सुदृढ़ करने के लिए जोड़ा कि यह घटना तभी ट्रिगर होती है जब किसी वर्ण को किसी कीपर के विपरीत टाइप किया जाता है - आपको मेरा उत्थान मिला;)
टोनी मेरीफील्ड

1
इसके अलावा, एक कुंजी के "लंबे" प्रेस पर, KeyDown इवेंट तब तक फायरिंग करता रहता है जब तक कि कुंजी जारी नहीं हो जाती है, जिस स्थिति में KeyUp को केवल एक बार निकाल दिया जाता है;)
बर्नौली आईटी

195

KeyPress, KeyUpऔर KeyDownकरने के लिए क्रमश: अनुरूप हैं: Click, MouseUp,और MouseDown

  1. Down पहले होता है
  2. Press दूसरा होता है (जब पाठ दर्ज किया जाता है)
  3. Up अंतिम होता है (जब पाठ इनपुट पूरा हो जाता है)।

अपवाद वेबकिट है , जिसमें एक अतिरिक्त घटना है:

keydown
keypress
textInput     
keyup

नीचे एक स्निपेट है जिसका उपयोग आप अपने आप को देखने के लिए कर सकते हैं जब घटनाओं को निकाल दिया जाता है:

window.addEventListener("keyup", log);
window.addEventListener("keypress", log);
window.addEventListener("keydown", log);

function log(event){
  console.log( event.type );
}


1
तो, क्या KeyPress सिर्फ एक अतिरिक्त घटना है जो कि b / w KeyDown और TextInput है? यह डेवलपर्स द्वारा आमतौर पर कैसे इस्तेमाल किया जाता है?
इंस्टैंटसेट्सुना

78
+1 सबसे अच्छा उत्तर - * डाउन पहले होता है, * प्रेस दूसरा होता है (जब पाठ दर्ज किया जाता है), और * ऊपर अंतिम होता है (जब पाठ इनपुट पूरा होता है)।
स्कॉट पेलाक

2
-1 क्योंकि स्निपेट में थोड़ा सा प्रयोग आपके सादृश्य को 'क्लिक' ईवेंट के विपरीत कर देता है। 'क्लिक' ईवेंट 'माउसअप' (जब आप माउस बटन को छोड़ते हैं) के रूप में एक ही समय में आग लग जाती है, लेकिन 'कीपर' घटना उसी समय 'कीडाउन' (जब कुंजी पहले उदास होती है) के रूप में आग।
मार्क अमेरी

2
@Robusto वास्तव में, keypressऔर keydownघटनाओं का शाब्दिक अर्थ एक ही .timeStampमूल्य है, जो 5 माइक्रोसेकंड के अंतराल के लिए सटीक है, लेकिन यह वास्तव में वैसे भी मेरी बात नहीं है। मेरे मुद्दा यह है कि है clickघटना आग जब तक आप ऐसा नहीं करता जारी माउस बटन है, तो कह रही है कि keypressके कीबोर्ड संस्करण है clickऐसा लगता है जैसे ध्वनि बनाता keypressहोगा वैसे ही नहीं आग जब तक आप जारी कुंजी। वास्तव में, यह मामला नहीं है: यह आग लग जाती है जब कुंजी उदास होती है, ठीक उसी तरह keydown। तो keypressवास्तव clickमें बिल्कुल अनुरूप नहीं है ।
मार्क अमेरी

2
@Robusto "आप ' कीपर ' को हमेशा ' कीडाउन ' के बाद रिकॉर्ड किए जाने की व्याख्या कैसे करते हैं" - सरल: एक ही उपयोगकर्ता कार्रवाई (एक कुंजी को नीचे धकेलना) तुरंत दोनों संचालकों को घटना कतार में धकेलने के लिए ट्रिगर करती है, लेकिन एक निश्चित क्रम में । "आप सिर्फ तर्क के लिए तर्क चाहते हैं" - एह? अपने जवाब के मुख्य थीसिस है कि है keypress, keyupऔर keydownअनुरूप हैं करने के लिए click, mouseupऔर mousedown। उस की प्राकृतिक व्याख्या, मेरे लिए यह है कि (जैसे और ) keypressएक ही पल में आग लग जाती है । क्या था तुम्हारा मतलब है, न कि अगर? keyupclickmouseup
मार्क अमेरी

23

जवाब में से अधिकांश यहाँ व्यावहारिक मामलों की तुलना में सिद्धांत पर अधिक ध्यान केंद्रित कर रहे हैं और वहाँ के बीच कुछ बड़े मतभेद है keyupऔर keypressयह, इनपुट क्षेत्र मूल्यों से संबंधित है फ़ायरफ़ॉक्स में कम से कम (43 में परीक्षण) के रूप में।

यदि उपयोगकर्ता 1खाली इनपुट तत्व में टाइप करता है:

  1. इनपुट तत्व का मूल्य keypressहैंडलर के अंदर एक खाली स्ट्रिंग (पुराना मूल्य) होगा

  2. इनपुट तत्व का 1मूल्य keyupहैंडलर के अंदर (नया मूल्य) होगा ।

यदि आप कुछ ऐसा कर रहे हैं जो महत्वपूर्ण है तो इनलाइन सत्यापन या ऑटो टैबिंग जैसे वर्तमान मूल्य के बजाय इनपुट के बाद नए मूल्य को जानने पर निर्भर करता है।

परिदृश्य:

  1. उपयोगकर्ता 12345एक इनपुट तत्व में टाइप करता है।
  2. उपयोगकर्ता पाठ का चयन करता है 12345
  3. उपयोगकर्ता पत्र टाइप करता है A

जब keypressपत्र में प्रवेश करने के बाद घटना होती है A, तो पाठ बॉक्स में अब केवल पत्र होता है A

परंतु:

  1. Field.val () है 12345
  2. $ Field.val ()। लंबाई है 5
  3. उपयोगकर्ता का चयन एक रिक्त स्ट्रिंग है (आपको यह निर्धारित करने से रोकना कि चयन को अधिलेखित करके हटा दिया गया था)।

तो ऐसा लगता है कि ब्राउज़र (फ़ायरफ़ॉक्स 43) उपयोगकर्ता के चयन को मिटा देता है, फिरkeypress घटना को आग लगाता है , फिर फ़ील्ड की सामग्री को अपडेट करता है, फिर आग लगाता है keyup


16

onkeydownजब कुंजी (नीचे है शॉर्टकट में की तरह निकाल दिया जाता है, उदाहरण के लिए, में Ctrl+A, Ctrlआयोजित किया जाता है 'नीचे'।

onkeyup जब कुंजी जारी की जाती है तो निकाल दिया जाता है (संशोधक / आदि कुंजियों सहित)

onkeypressका एक संयोजन के रूप में निकाल दिया जाता है onkeydownऔर onkeyup, या कीबोर्ड दोहराने के आधार पर (जब onkeyupनिकाल दिया नहीं है)। (यह दोहराव व्यवहार कुछ ऐसा है जिसे मैंने परीक्षण नहीं किया है। यदि आप परीक्षण करते हैं, तो एक टिप्पणी जोड़ें!)

textInput(webkit केवल) निकाल दिया जाता है जब कुछ पाठ दर्ज किया जाता है (उदाहरण के लिए, Shift+Aअपरकेस 'ए' दर्ज करेगा, लेकिन Ctrl+Aपाठ का चयन करेगा और किसी पाठ इनपुट में प्रवेश नहीं करेगा। उस स्थिति में, अन्य सभी घटनाओं को निकाल दिया जाता है)


1
बस पुष्टि की है कि, वास्तव में, "ऑनकीप्रेस" को बार-बार कहा जाता है जब कुंजी नीचे रखी जाती है, और "कीबोर्ड रिपीट" होता है। हालांकि, यह "ऑनकीडाउन" के लिए भी सच है! (जो अप्रत्याशित है, नाम दिया गया है)
वेनरिक्स

11

सबसे पहले, उनके अलग-अलग अर्थ हैं: वे अग्नि:

  • KeyDown - जब एक कुंजी को नीचे धकेल दिया गया था
  • KeyUp - जब एक पुश बटन जारी किया गया था , और इनपुट के मूल्य के बाद / textarea अपडेट किया गया है (इनमें से केवल एक)
  • KeyPress - उन और बीच का मतलब यह नहीं है कि एक कुंजी को धक्का दिया गया और जारी किया गया (नीचे देखें)।

दूसरा, कुछ चाबियां इन घटनाओं में से कुछ को आग लगाती हैं और दूसरों को आग नहीं लगाती हैं । उदाहरण के लिए,

  • कुंजी दबाने ध्यान न दी delete, तीर, PgUp/ PgDn, home/ end, ctrl, alt, shiftआदि, जबकि KeyDown और KeyUp नहीं (के बारे में विवरण देख पा रहे हैं escतो नीचे दिए गए);
  • जब आप विंडो को विंडोज में alt+ के माध्यम से स्विच करते हैं tab, तो altआग के लिए केवल KeyDown क्योंकि विंडो स्विचिंग किसी अन्य घटना से पहले होती है (और KeyDown को tabसिस्टम द्वारा रोका जाता है, मुझे लगता है, कम से कम क्रोम 71 में)।

इसके अलावा, आपको यह ध्यान रखना चाहिए कि event.keyCode(और event.which) आमतौर पर KeyDown और KeyUp के लिए समान मूल्य है लेकिन KeyPress के लिए अलग है। मेरे द्वारा बनाए गए खेल के मैदान का प्रयास करें । वैसे, मैंने काफी विचित्र रूप से देखा है: क्रोम में, जब मैं ctrl+ दबाता हूं aऔर input/ / textareaखाली होता है, तो KeyPress fires with event.keyCode(and event.which) के बराबर होता है 1! (जब इनपुट खाली नहीं है, तो यह बिल्कुल भी आग नहीं करता है)।

अंत में, कुछ व्यावहारिक है :

  • तीर से निपटने के लिए, आपको संभवतः onKeyDown का उपयोग करने की आवश्यकता होगी: यदि उपयोगकर्ता रखता है , तो KeyDown कई बार फायर करता है (जबकि KeyUp केवल एक बार आग लगाता है जब वे बटन छोड़ते हैं)। इसके अलावा, कुछ मामलों में आप आसानी से KeyDown के प्रचार को रोक सकते हैं लेकिन (या आसानी से ऐसा नहीं कर सकते हैं) KeyUp के प्रसार को रोक सकते हैं (उदाहरण के लिए, यदि आप पाठ क्षेत्र में नई पंक्ति को जोड़े बिना दर्ज करना चाहते हैं)।
  • आश्चर्य की बात यह है कि जब आप एक कुंजी रखते हैं, तो textareaKeyPress और KeyDown दोनों में कई बार (Chrome 71) कहते हैं, अगर मुझे कई बार आग लगने और एकल कुंजी रिलीज़ के लिए KeyUp की आवश्यकता हो तो मैं KeyDown का उपयोग करूँगा।
  • कीडाउन आमतौर पर खेलों के लिए बेहतर होता है जब आपको उनके कार्यों के लिए बेहतर जवाबदेही प्रदान करनी होती है।
  • escआमतौर पर KeyDown के माध्यम से संसाधित किया जाता है: KeyPress फायर नहीं करता है और KeyUp विभिन्न ब्राउज़रों में inputs और textareas के लिए अलग-अलग व्यवहार करता है (ज्यादातर फ़ोकस के नुकसान के कारण)
  • यदि आप किसी पाठ क्षेत्र की ऊँचाई को सामग्री में समायोजित करना चाहते हैं, तो आप संभवतः onKeyDown का उपयोग नहीं करेंगे, बल्कि onKeyPress ( PS ok), वास्तव में इस मामले के लिए onChange का उपयोग करना बेहतर होगा )।

मैंने अपनी परियोजना में सभी 3 का उपयोग किया है, लेकिन दुर्भाग्य से कुछ व्यावहारिकताओं को भूल सकता है। (ध्यान दिया जाना है: वहाँ भी है inputऔर changeघटनाओं)


मैंने क्षेत्र सामग्री में नई लाइन जोड़ने के बारे में सोचा नहीं था, लेकिन यह वास्तव में महत्वपूर्ण है।
FKEinternet

10

जान वोल्‍टर का यह लेख मेरे द्वारा आया सबसे बेहतरीन कृति है, अगर लिंक मर चुका है तो आप यहां संग्रहित प्रति पा सकते हैं ।

यह सभी ब्राउज़र कुंजी घटनाओं को वास्तव में अच्छी तरह से समझाता है,

Keydown घटना तब होती है जब कुंजी दबाया जाता है, कुंजी दबाने घटना से तुरंत पालन किया। तब कुंजी जारी होने पर कीप घटना उत्पन्न होती है।

के बीच अंतर को समझने के लिए keydown और कुंजी दबाने , यह के बीच अंतर करने के लिए उपयोगी है वर्ण और चाबियाँ । एक कुंजी कंप्यूटर के कीबोर्ड पर एक भौतिक बटन है। एक चरित्र एक बटन दबाकर टाइप किया गया प्रतीक है। यूएस कीबोर्ड पर, 4कुंजी को दबाए रखते हुए कुंजी को मारना Shiftआमतौर पर "डॉलर चिन्ह" चरित्र का निर्माण करता है। जरूरी नहीं कि दुनिया के हर कीबोर्ड पर ऐसा ही हो। सिद्धांत रूप में, keydown और KeyUp घटनाओं, कुंजी दबाया या जारी किया जा रहा प्रतिनिधित्व करते हैं, जबकि कुंजी दबानेघटना टाइप किए जा रहे चरित्र का प्रतिनिधित्व करती है। व्यवहार में, यह हमेशा जिस तरह से लागू किया जाता है वह नहीं है।

थोड़ी देर के लिए, कुछ ब्राउज़र एक अतिरिक्त घटना, कहा जाता निकाल दिया TextInput के तुरंत बाद, कुंजी दबाने । DOM 3 मानक के शुरुआती संस्करणों ने इसे कीप इवेंट के प्रतिस्थापन के रूप में लक्षित किया था, लेकिन बाद में पूरी धारणा निरस्त कर दी गई थी। वेबकिट ने 525 और 533 संस्करणों के बीच इसका समर्थन किया, और मुझे बताया गया है कि IE ने इसका समर्थन किया, लेकिन मैंने कभी इसका पता नहीं लगाया, संभवतः इसलिए कि वेबकिट को इसे textInput कहा जाना चाहिए, जबकि IE ने इसे textinput कहा ।

सभी ब्राउज़र द्वारा समर्थित इनपुट नामक एक घटना भी होती है , जिसे टेक्स्टारिया या इनपुट फ़ील्ड में किए गए परिवर्तन के ठीक बाद निकाल दिया जाता है । आमतौर पर की-बोर्ड फायर करेगा, फिर टाइप किया हुआ कैरेक्टर टेक्स्ट एरिया में दिखाई देगा, फिर इनपुट फायर होगा। इनपुट घटना वास्तव में क्या महत्वपूर्ण लिखे गए वर्णों के बारे में कोई जानकारी नहीं दे करता है - आप पाठ बॉक्स का निरीक्षण करने के लिए यह पता लगाने की क्या बदला होगा - तो हम वास्तव में यह एक महत्वपूर्ण घटना पर विचार नहीं करते हैं और वास्तव में इसे यहाँ दस्तावेज़ नहीं है । हालांकि यह मूल रूप से केवल टेक्सारेस और इनपुट बॉक्स के लिए परिभाषित किया गया था, मेरा मानना ​​है कि इसे सामान्य बनाने की दिशा में कुछ आंदोलन है जो अन्य प्रकार की वस्तुओं पर भी आग लगा सकते हैं।


सर्वश्रेष्ठ उत्तर, तो आप कैसे कह सकते हैं, कह सकते हैं, किप से डॉलर का चिन्ह?
ब्लूजैके

10

ऐसा लगता है कि onkeypress और onkeydown एक ही करते हैं (ऊपर बताए गए शॉर्टकट कुंजियों के छोटे अंतर को whithin)।

आप यह कोशिश कर सकते हैं:

<textarea type="text" onkeypress="this.value=this.value + 'onkeypress '"></textarea>
<textarea type="text" onkeydown="this.value=this.value + 'onkeydown '" ></textarea>
<textarea type="text" onkeyup="this.value=this.value + 'onkeyup '" ></textarea>

और आप देखेंगे कि ऑनकीप्रेस और ऑनकीडाउन दोनों घटनाओं को ट्रिगर किया गया है जबकि कुंजी को दबाया गया है न कि जब कुंजी को दबाया जाता है।

अंतर यह है कि घटना को एक बार नहीं बल्कि कई बार ट्रिगर किया जाता है (जब तक आप कुंजी दबाए रखते हैं)। उस बारे में जागरूक रहें और उसी के अनुसार उन्हें संभालें।


Ctrl, Shift, CapsLock, Backspace और अन्य कुंजियाँ जो कुछ टाइप नहीं करती हैं, एकkeypress घटना का कारण नहीं बनती हैं , लेकिन वे हमेशा एक ट्रिगर करती हैं keydown
CPHPython

8

Onkeypress घटना सभी ब्राउज़रों में ALT, CTRL, SHIFT, ESC को छोड़कर सभी कुंजियों के लिए काम करती है, जहाँ onkeydown ईवेंट सभी कुंजियों के लिए काम करता है। ऑनकीड ऑन इवेंट का मतलब सभी चाबियों को पकड़ना है।


कीबोर्ड डिलीट, एरो, होम / एंड, PgUp / PgDn को भी अनदेखा करता है, विवरणों के लिए मेरा उत्तर देखें (आप अपना उत्तर भी अपडेट करना चाह सकते हैं)
YakovL

4

बस एक जिज्ञासा साझा करना चाहता था:

जब JS विधि को सक्रिय करने के लिए onkeydown ईवेंट का उपयोग किया जाता है, तो उस ईवेंट के लिए चारकोड वैसा नहीं होता है जैसा कि आप onkeypress के साथ प्राप्त करते हैं!

उदाहरण के लिए, numpad कुंजियाँ onkeypress का उपयोग करते समय अक्षर कुंजियों के ऊपर संख्या कुंजियों के समान ही चारकोड लौटाएगी, लेकिन onkeydown का उपयोग करते समय नहीं!

मुझे यह जानने के लिए कुछ सेकंड्स का समय लगा कि क्यों कुछ स्क्रिप्ट्स के लिए चेक करने वाली मेरी स्क्रिप्ट onkeydown का उपयोग करते समय विफल रही!

डेमो: https://www.w3schools.com/code/tryit.asp?filename=FMMBXKZLP1MK

और हाँ। मुझे पता है कि तरीकों की परिभाषा अलग-अलग है .. लेकिन जो चीज़ बहुत भ्रामक है वह यह है कि दोनों तरीकों में घटना के परिणाम को फिर से प्राप्त किया जाता है। लेकिन फिर भी वे एक ही मान नहीं लौटाते हैं .. बहुत अधिक नहीं घोषणात्मक कार्यान्वयन।


ऐसा प्रतीत होता है कि न्यूमेरिक कैरेक्टर ( 0123456789) के लिए चीजें समान हैं
मृगांक पावगी

और क्या आपने देखा कि कीडाउन कीबोर्ड पर की-बोर्ड देता है, जबकि कीपर सटीक कैरेक्टर देता है जिसे हमने सिर्फ टाइप किया (या क्लिक किया)
मृगांक पावगी

2

मूल रूप से, ये घटनाएं अलग-अलग ब्राउज़र प्रकार और संस्करण पर अलग-अलग कार्य करती हैं, मैंने एक छोटा सा jBBin परीक्षण बनाया और आप यह पता लगाने के लिए कंसोल की जांच कर सकते हैं कि आपके लक्षित वातावरण के लिए ये घटनाएँ कैसे व्यवहार करती हैं, इस मदद की आशा करें। http://jsbin.com/zipivadu/10/edit


1

अपडेट किया गया उत्तर:

चाबी नीचे

  • जब आप कुंजियाँ दबाते हैं तो कई बार आग लग जाती है।
  • आग मेटा कुंजी।

बटन दबाओ

  • जब आप कुंजियाँ दबाते हैं तो कई बार आग लग जाती है।
  • मेटा कीज़ को फायर नहीं करता है ।

तनाव के स्थिति में

  • जब आप कुंजी जारी करते हैं तो एक बार अंत में आग लग जाती है ।
  • आग मेटा कुंजी।

यह दोनों में व्यवहार है addEventListenerऔर jQuery

https://jsbin.com/vebaholamu/1/edit?js,console,output <- उदाहरण का प्रयास करें

एसएसएस के लिए पकड़ के साथ उदाहरण दिखाता है

(उत्तर को सही प्रतिक्रिया, स्क्रीनशॉट और उदाहरण के साथ संपादित किया गया है)



-1, क्योंकि कम से कम क्रोम में इस पर कम से कम एक विवरण गलत है; जैसा कि @bluejayke कहता है, KeyDown जब आप किसी कुंजी को पकड़ते हैं तो बार-बार फायर करता है।
मार्क अमेरी

हाँ आप लोग सही हैं, मेरी गलती के लिए क्षमा करें; उत्तर संपादित किया गया।
Quang Van

0

कुछ व्यावहारिक तथ्य जो यह तय करने के लिए उपयोगी हो सकते हैं कि कौन सी घटना को संभालना है (नीचे दी गई स्क्रिप्ट को चलाएं और इनपुट बॉक्स पर ध्यान दें):

$('input').on('keyup keydown keypress',e=>console.log(e.type, e.keyCode, e.which, e.key))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input/>

दबाना:

  • गैर डालने / टाइपिंग कुंजियों (जैसे Shift, Ctrl) एक ट्रिगर नहीं करेगा keypressCtrlइसे दबाएँ और जारी करें:

    कीडाउन १ key १ 17 कंट्रोल

    कीप 17 17 नियंत्रण

  • कीबोर्ड से कुंजियाँ जो अन्य वर्णों में वर्ण परिवर्तन लागू करती हैं, वे डेड और डुप्लिकेट "कुंजियाँ" (उदाहरण ~के लिए ´) को जन्म दे सकती हैं keydown´एक डबल प्रदर्शित करने के लिए इसे दबाएँ और छोड़ें ´´:

    कीडाउन 192 192 डेड

    कीडाउन 192 192 2

    कीप 180 180 ´

    कीप 180 180 ´

    कीप 192 192 डेड

इसके अतिरिक्त, गैर टाइपिंग इनपुट्स (जैसे <input type="range">राउंडेड) अभी भी दबाए गए कुंजी के अनुसार सभी कीअप, कीडाउन और कीप इवेंट को ट्रिगर करेगा।

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