2011-10-18 13 views
10

काम नहीं कर रहा है, जबकि मैं दबाता हूं, जबकि टेक्स्ट बॉक्स में कुंजी दर्ज करता है, मैं एक बटन पर फ़ोकस सेट करने का प्रयास कर रहा हूं। लेकिन यह काम नहीं कर रहा है। मैं इंटरनेट   एक्सप्लोरर   8 ब्राउज़र का उपयोग कर रहा हूं। क्या मैं कुछ भूल रहा हूँ?बटन पर फ़ोकस सेट करना

$("input.Box").live('keydown', function(e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     $("#button").focus(); // Not working? 
    } 
}); 

उत्तर

6

माइक्रोसॉफ्ट ने फैसला किया कि उन्हें e.keyCode पसंद नहीं है और इसके बजाय उनका अपना वाक्यविन्यास, e.which है।

आप दोनों के लिए जाँच करने के लिए है:

$("input.Box").live('keydown', function(e) { 
    var keyCode = (window.event) ? e.which : e.keyCode; 

    if (keyCode == 13) 
     e.preventDefault(); 
     $("#button").focus(); // Not working? 
    } 
}); 
+0

मेरे लिए e.keyCode == 13 ठीक काम करता है .. – Lamps

1

क्या आप सुनिश्चित हैं कि नाम सही है? .NET में चीजों का नाम बदलने की आदत है। आप भाषा या पर्यावरण निर्दिष्ट नहीं करते हैं।

कक्षा चयनकर्ता का उपयोग करने का प्रयास करें। बटन को class="Test" का क्लास नाम दें और फिर $(".Text").focus() का उपयोग करके चुनें।

+0

हाँ, नाम सही है। – Lamps

9

समस्या यह है कि आईई ताकि आप जब live समारोह दर्ज किया गया है के बीच एक छोटी सी देरी जोड़ने की जरूरत है जल्दी से पर्याप्त प्रतिक्रिया करने के लिए, सक्षम नहीं है है, और जब .focus() कहा जाता है। तो, e.keyCode साथ e.which का उपयोग कर के रूप में ब्लेंडर आपकी समस्या का समाधान करना चाहिए सुझाव के साथ

setTimeout(function() { 
$('#button').focus(); 
}, 100); 

इस के साथ

$("#button").focus();

की जगह, संयोजन के रूप में।

+0

मेरे लिए e.keyCode == 13 ठीक काम करता है। – Lamps

-1

सुनिश्चित करें कि डीओएम तैयार है, तत्व मौजूद है, फोकस सेट करने का प्रयास करने से पहले।

+1

वह दस्तावेज़ लोड पर बटन पर ध्यान केंद्रित करने की कोशिश नहीं कर रहा है। –

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