2011-06-09 12 views
23

पर फ़ाइल अपलोड संवाद खोलने के लिए मुझे कुछ अन्य बटन क्लिक करके फ़ाइल अपलोड संवाद खोलना है, मैं फ़ाइल अपलोड नियंत्रण (दृश्यता: छुपा) छुपा रहा हूं और कुछ अन्य बटन पर क्लिक करके मैं उस संवाद को खोलना चाहता हूं।क्लिक करें

<input type="file" style="visibility: hidden;" /> 

नीचे जावास्क्रिप्ट है: नीचे कोड है जो मैं कर रहा हूँ है

$('#button').click(function() { 
    $('input[type=file]').click(); 
}); 

यह Firefox 4 और IE8 में ठीक काम कर रहा है, लेकिन chrome12 में यह काम नहीं कर रहा है यानी डायलॉग नहीं है खोला जा रहा है कोई विचार क्यों?

उत्तर

0

आपको अपने कस्टम नियंत्रण से ऊपर इनपुट [फ़ाइल] रखना चाहिए। और फिर इसके लिए क्लिक करें।

इसके अलावा इसे बड़ा फ़ॉन्ट आकार बनाएं, क्योंकि इस तरह से आप इसकी ऊंचाई बढ़ा सकते हैं।

6

आपके उदाहरण में, आपके फ़ाइल इनपुट में कोई आईडी नहीं थी, फिर भी आप इसे #input के साथ संदर्भित करने का प्रयास कर रहे हैं। यह मेरे लिए काम करता है:

$('#button').click(function() { 
    $('input[type=file]').click(); 
}); 
+0

क्षमा करें, मैंने इसे हटा दिया। –

+1

असल में यह अब तक काम नहीं करता है, या तो ब्राउज़र अपडेट से jquery के अपडेट से –

8

परीक्षण आज सरल कोड प्रश्न में दिए गए और स्थिति बदल गई है:

  • IE9: काम करता है
  • Chrome23: काम करता है
  • Firefox15: काम करता है

आईई पर .click() एक ब्लॉकिंग ऑपरेशन है जबकि अन्य ब्राउज़रों पर यह एक पकड़ है।

+0

क्या आप ऑपरेशन को अवरुद्ध करके अपना क्या मतलब बता सकते हैं? – william

+0

'fileElement.click(); var x = fileElement.value; '- IE पर यह अपेक्षित के रूप में काम करेगा, लेकिन अन्य ब्राउज़रों पर 'x' खाली होगा। –

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