2012-08-08 10 views
6

मैं टेक्स्ट इनपुट में प्रवेश करने से अन्य सभी पात्रों को अक्षम करने की कोशिश कर रहा हूं।

पाने के लिए के बाद से $ आप पारी -कुंजी और -कुंजी दबाना होगा। मुझे यकीन नहीं है कि इस तरह कुछ के लिए आपको कुंजीकोड कैसे मिलेगा?

+0

की संभावित डुप्लिकेट [क्या हैं जावास्क्रिप्ट कीकोड्स?] (Http://stackoverflow.com/questions/5603195/what-are-the-javascript-keycodes) –

उत्तर

5

कुंजी कोड केवल कुंजी के लिए संबंधित हैं। $ एक चरित्र, दो चाबियाँ, Shift और 4. माध्यम से हासिल की है कोई कुंजी कोड जब onkeydown

संपादित करें का उपयोग कर $के लिए स्पष्ट रूप से नहीं है: यह है कि onkeypress कुंजी संयोजन का उपयोग करता एडवर्ड द्वारा बताया गया है, और है कीकोड के लिए संयोजन। हर दिन कुछ नया सीखें :)

Here's some code, एमडीएन द्वारा प्रदत्त onkeydown उदाहरण से संपादित, कुंजीपटल कीकोड का पता लगाने के लिए।

Here's the fiddlethis S.O. post से सहायता का उपयोग करके फ़ायरफ़ॉक्स-अनुकूल होने के लिए अपडेट किया गया। यदि आप इस तरह स्विंग करते हैं तो JQuery समाधान भी काम करता है।

+0

आपके संपादन से बेवकूफ इस परिणाम को फ़ायरफ़ॉक्स 12 में देता है: 'कुंजी दबाए गए कुंजी के लिए कोड: 0' (ऑन कोई भी कुंजी मैं दबाता हूं ..) – GitaarLAB

+0

@ गीतार्ब कितना अजीब है। आईई और क्रोम में काम करता है। मैं कल्पना नहीं कर सकता कि फ़ायरफ़ॉक्स 'ऑनकीप्रेस' का समर्थन नहीं करेगा, हालांकि इसे 'ऑनकीडाउन' के लिए स्वैपिंग करना फ़ायरफ़ॉक्स में काम करता है। –

+0

देखें [यह एसओ। फ़ायरफ़ॉक्स में ऑनकीप्रेस पर जानकारी के लिए थ्रेड] (http://stackoverflow.com/questions/4496910/onkeypress-event-not-working-in-firefox) संदेह यह केवल एक ही है –

2

फिर अपनी समस्या का समाधान करने के लिए इस तरह का उपयोग न करें: चूंकि आप भविष्यवाणी नहीं कर सकते कि प्रत्येक कीबोर्ड-लेआउट में हमेशा $ -ign को Shift + 4 के रूप में दर्ज किया जाएगा।
आप अभी भी कुंजीकोड 4 प्राप्त कर सकते हैं, और जांच कर सकते हैं कि शिफ्ट दबाया गया था, लेकिन आप इस बारे में सुनिश्चित नहीं हो सकते !!

इस प्रकार अपने क्षेत्रों में सभी अवैध पात्रों को प्रतिस्थापित करना बेहतर होगा (डेटा जमा करने से पहले)। सोचें: str.replace()
आप इनपुट-बॉक्स की ऑनकीप घटना पर अवैध पात्रों के अपने सेट की जांच भी कर सकते हैं, जो आपके द्वारा टाइप किए जाने वाले सभी अवैध पात्रों को प्रभावी रूप से बदलते हैं!
पसंद: onkeyup="this.value.replace(/[your illegal characters]/gi, '')"
यह वही करना चाहिए जो आप चाहते हैं।

कृपया ध्यान दें: आपको कभी भी ब्राउज़र-इनपुट पर भरोसा नहीं करना चाहिए, और अभी भी इस इनपुट को अपनी प्राप्त स्क्रिप्ट में फ़िल्टर करना चाहिए !!!

शुभकामनाएं !!

5

कोई onkeydown कीकोड, जैसा कि पहले से ngmiceli

कहा हालांकि, onkeypress कीकोड मौजूद है और 36 के बराबर है।

JavaScript Event KeyCode Test Page

+0

+1 इसके लिए धन्यवाद! –

1

वहाँ $ के लिए कोई कुंजी कोड, यह एक वैध कुंजी नहीं है के बाद से है - यह शिफ्टर किसी तरह के माध्यम से सुलभ हो गया है।

आमतौर पर, आप यह देखने के लिए एक जांच करेंगे कि शिफ्ट सक्रिय था या नहीं, और प्रासंगिक कुंजी पर keypress ईवेंट के लिए सुनें।अपने उदाहरण में एक QWERTY लेआउट के लिए कुछ इस तरह:

var shiftPressed = false; 

$(window).keydown(function(e) { 
    if(e.which == 16) { shiftPressed = true; } 
    if(e.which == 52 && shiftPressed) 
    { 
     // Do whatever here... 
    } 
}); 

$(window).keyup(function(e) { 
    if(e.which == 16) { shiftPressed = false; } 
}); 
0

onkeypress - यूनिकोड वर्ण कोड है: 36

onkeydown - यूनिकोड कुंजी कोड है: 52

संबंधित मुद्दे