2009-11-14 13 views
5

मैं एक निश्चित कुंजी दबाए जाने पर किसी ईवेंट को बंद करने की कोशिश कर रहा हूं। यह इस कोड के साथ ठीक काम करता है:इनपुट या टेक्स्टरेरा फ़ील्ड में जब jquery कीप्रेस को अक्षम करना

$(document).keypress(function(e){ 
    switch(e.which){ 
      case 96:$("a.quicklinks").trigger('click'); 
      break; 
    } 

लेकिन, अगर उपयोगकर्ता किसी फ़ॉर्म फ़ील्ड में है, मैं इस व्यवहार को अक्षम करना चाहते हैं। मैं यह कैसे जांचूं कि उपयोगकर्ता ऐसा करने के लिए फॉर्म फ़ील्ड में टाइप कर रहा है या नहीं? धन्यवाद।

उत्तर

1

शायद तुम एक वैश्विक वर

var disable_keyevents = false; 
$('textarea,input') 
    .focus(function() { disable_keyevents = true }) 
    .blur(function() { disable_keyevents = true; }); 

सेट कर सकते हैं तो आप सिर्फ स्विच से पहले .keypress घटना $ (दस्तावेज़) में disable_keyevents का मूल्य की जाँच करें। जब उपयोगकर्ता प्रेस ASCII वर्ण # 96 अपने प्रपत्र के अंदर

16
$(document).keypress(function(e) { 
    if ($(e.target).is('input, textarea')) { 
     // event invoked from input or textarea 
    } 
    ...   
}); 
+0

यह बहुत अच्छा काम करता है, धन्यवाद! – Bill

0

इस कोड को ट्रिगर किया जाएगा - आप इसका उपयोग कर सकते निष्क्रिय करने के लिए/इस कुंजी दबाने के लिए "डिफ़ॉल्ट कोड" को संशोधित।

$('#my_form_field').live('keypress', function(e) { 
    if (e.keyCode == 96) { 
     e.preventDefault(); 
     // Do stuff. 
    } 
}); 
संबंधित मुद्दे