2010-11-03 21 views
19

में बैकस्पेस/डेल नहीं पकड़ता है मैं इस प्रकार के कोड के साथ जावास्क्रिप्ट/jQuery का उपयोग कर बैकस्पेस और हटाएं कुंजी की दबाने वाली घटना को पकड़ने की कोशिश कर रहा हूं।जावास्क्रिप्ट e.keyCode आईई

$("textarea[name=txt]").keypress(function(e){ 
    var keycode = e.keyCode ? e.keyCode : e.which; 

    if(keycode == 8){ // backspace 
     // do somethiing 
     alert(keycode); 
    } 

    if(keycode == 46){ // delete 
     // do somethiing 
     alert(keycode); 
    } 

}); 

कोड की ये पंक्तियां फ़ायरफ़ॉक्स (3.6.12) में पूरी तरह से काम करती हैं। इसका मतलब है कि बैकस्पेस या डिलीट दबाए जाने पर अलर्ट पॉप अप हो जाता है। लेकिन यह इंटरनेट एक्सप्लोरर (8)

में काम नहीं कर रहा है क्या कोई मुझे इंटरनेट एक्सप्लोरर में इन महत्वपूर्ण प्रेस घटनाओं को पकड़ने का एक अलग तरीका सुझा सकता है?

+1

[यह पृष्ठ] (http://jimblackler.net/blog/?p=20) ऐसा लगता है कि आपको 'कीप्रेस' घटना के बजाय 'कीडाउन' ईवेंट' का उपयोग करने की आवश्यकता है। क्या यह इतना आसान है? – clarkf

उत्तर

25

आप IE का समर्थन करना चाहते हैं और आप विशेष कुंजियों (delete और backspace) की तरह मैं keydown/keyup बजाय उपयोग करने का सुझाव का उपयोग करते हैं।

विशेष कुंजी

एक्सप्लोरर हटाना, समाप्त करने के लिए कुंजी दबाने ईवेंट को सक्रिय नहीं है, में प्रवेश, बच, समारोह चाबियाँ, घर, सम्मिलित करें, PAGEUP/नीचे और टैब।

यदि आपको इन चाबियों का पता लगाने की आवश्यकता है, तो अपने आप को एक पक्ष करें और अपने कीकोड ऑनकीडाउन/ऊपर, और ऑनकीप्रेस और चारकोड दोनों को अनदेखा करें।

आप Detecting keystrokes(Quirksmode) के पार ब्राउज़र मुद्दों पर अधिक पढ़ सकते हैं।

-4

बैकस्पेस के लिए कुंजी कोड मान ले जाएगा = हम पहले से ही एक पाठ बॉक्स में कुछ वर्ण है।

कुंजी कोड होगा = अगर वहाँ पाठ बॉक्स में कोई वर्ण हैं और हम बैकस्पेस हिट करने की कोशिश कर रहे हैं।

+2

83 के 'चरित्र' नहीं है? – kzh

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