मुझे पता है कि यह पुराना है, और ये सभी समाधान वास्तविक मूल्य के साथ ब्राउज़र सुरक्षा सावधानियों के आसपास हैक्स हैं।
कहा कि, आज के रूप में, fileInput.click () वर्तमान क्रोम (36.0.1985.125 मीटर) और वर्तमान फ़ायरफ़ॉक्स ईएसआर (24.7.0) में काम करता है, लेकिन वर्तमान IE (11.0.9600.17207) में नहीं। बटन के शीर्ष पर अपारदर्शिता 0 के साथ एक फ़ाइल फ़ील्ड को ओवरलेइंग करना, लेकिन मैं दृश्य ट्रिगर के रूप में एक लिंक तत्व चाहता था, और होवर को रेखांकित करना किसी भी ब्राउज़र में काफी काम नहीं करता है। यह तब गायब हो जाता है, शायद ब्राउज़र सोचता है कि क्या होवर स्टाइल वास्तव में लागू होता है या नहीं।
लेकिन मुझे एक समाधान मिला जो उन सभी ब्राउज़रों में काम करता है। मैं हर ब्राउज़र के हर संस्करण का परीक्षण करने का दावा नहीं करूंगा, या मुझे पता है कि यह हमेशा के लिए काम करना जारी रखेगा, लेकिन यह मेरी जरूरतों को पूरा करता है।
यह सरल है: फ़ाइल इनपुट फ़ील्ड ऑफ़स्क्रीन स्थिति (स्थिति: निरपेक्ष; शीर्ष: -5000px), इसके चारों ओर एक लेबल तत्व डालें, और फ़ाइल फ़ील्ड के बजाय लेबल पर क्लिक ट्रिगर करें।
ध्यान दें कि लेबल की क्लिक विधि को कॉल करने के लिए लिंक को स्क्रिप्ट करने की आवश्यकता होती है, यह स्वचालित रूप से नहीं करता है, जैसे कि जब आप लेबल तत्व के अंदर पाठ पर क्लिक करते हैं। जाहिरा तौर पर लिंक तत्व क्लिक को कैप्चर करता है, और यह लेबल के माध्यम से नहीं बनाता है।
यह भी ध्यान दें कि यह वर्तमान में चयनित फ़ाइल को दिखाने का एक तरीका प्रदान नहीं करता है, क्योंकि फ़ील्ड ऑफ़स्क्रीन है। जब एक फ़ाइल का चयन किया गया था, तो मैं तुरंत सबमिट करना चाहता था, इसलिए यह मेरे लिए कोई समस्या नहीं है, लेकिन अगर आपकी स्थिति अलग है, तो आपको कुछ अलग दृष्टिकोण की आवश्यकता होगी।