2010-08-10 4 views
6

संभव डुप्लिकेट को स्वीकार नहीं करता है:
JavaScript: Visibility error in Internet Explorer when setting focus on an input elementGreybox: नियंत्रित करने के लिए ध्यान केंद्रित नहीं बदला जा सकता, क्योंकि यह अदृश्य, सक्षम नहीं है, या एक प्रकार है कि फोकस

मैं एक पेज है जो एक ग्रेबॉक्स के भीतर लोड होता है। मैंने document.getElementById("textfield").focus() के साथ फोकस सेट किया - यह पृष्ठ को सीधे कॉल करते समय ठीक काम करता है।

लेकिन जब एक greybox में लोड, ऑनलोड() घटना रिटर्न पर ध्यान केंद्रित करने की स्थापना:

नियंत्रित करने के लिए ध्यान केंद्रित नहीं बदला जा सकता, क्योंकि यह अदृश्य, सक्षम नहीं, या एक प्रकार का है कि फोकस

बाद में कॉल करना ठीक काम करता है।

कोई विचार?

धन्यवाद!

+0

कोई बात नहीं, इसे हल! – Michael

उत्तर

1

बस इसके लिए त्वरित उत्तर पोस्ट करना ... इस आज रात को हल करना पड़ा। ग्रेबॉक्स पेज प्रदर्शित होने के बाद संक्षेप में फोकस फ़ंक्शन को कॉल करने के लिए एक सेटटाइमआउट का उपयोग किया जाता है।

एक छोटी सी jQuery मेरी संस्करण में प्रयोग किया जाता है, क्योंकि यह इस परियोजना में पहले से ही था, लेकिन आप बस के रूप में आसानी से window.onload इस्तेमाल कर सकते हैं()

<script type="text/javascript"> 
    $(document).ready(function() { 
    setTimeout ("document.getElementById('AdminID').focus(); ", 500); 
    }); 
</script> 
7

यह IE पर एक प्रसिद्ध मुद्दा है।

आप इसके बारे में here पढ़ सकते हैं।

समाधान फोकस() निष्पादित समय में देरी करने के लिए setTimeout() फ़ंक्शन का उपयोग करना है।

document.getElementById("textfield").focus(); 
निम्नलिखित के साथ

:

आप अपनी लाइन को बदलने के लिए की जरूरत है

setTimeout(function() { document.getElementById("textfield").focus(); }, 10); 
+2

बहुत बहुत धन्यवाद, यह मेरे लिए नरक परेशान था, और आईई 8 – nsilva

+1

के साथ इतने सारे मुद्दों का कारण बन रहा था मैंने इस त्रुटि को केवल आईई 8 और पुराने में देखा है – Spiff

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

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