2011-08-20 7 views
8

इस post पर निम्नलिखित के बाद, मेरे पास एक और जारीकर्ता है - जब मैं टेक्स्ट लिंक पर क्लिक करता हूं तो इनपुट में ब्राउज़ फ़ाइल को कैसे ट्रिगर कर सकता हूं?jquery ट्रिगर: जब मैं टेक्स्ट लिंक पर क्लिक करता हूं तो इनपुट में ब्राउज़ फ़ाइल को कैसे ट्रिगर कर सकता हूं?

मूल रूप से मैं फॉर्म को छिपाना चाहता हूं लेकिन जब आप अपलोड टेक्स्ट लिंक पर क्लिक करेंगे तो यह ट्रिगर हो जाएगा।

<a href="#" class="upload">upload</a> 
<form action="upload.php" method="post" enctype="multipart/form-data" id="myForm" style="display:none;"> 
    <input type="file" multiple="multiple" name="file[]" /> 
    <input type="submit" name="upload" value="Submit"/> 
</form> 
<div id="output"></div> 

यह मेरा काम कर जावास्क्रिप्ट कोड है:

$(document).ready(function(){ 
    $('.upload').click(function(){ 
     $(this).trigger($('input[type=file]')); 
     return false; 
    }); 

    $('input[type=file]').change(function() { 
     $('#myForm').ajaxSubmit({ 
       target: '#output' 
     }); 
    }); 
}); 
+0

संभव डुप्लिकेट (http://stackoverflow.com/questions/1133058/emulate-a-file-upload-click-in-jquery) – BradleyDotNET

उत्तर

18

आप style="display:none;" उपयोग style="visibility:hidden;"

उपयोग नहीं कर सकते और मैं क्लिक करने के लिए ट्रिगर बदल दिया है:

$('.upload').click(function(){ 
    $('input[type=file]').click(); 
    return false; 
}); 


reas:

इनपुट फ़ील्ड्स display:none के साथ सर्वर पर नहीं भेजे जाएंगे, लेकिन visibility:hidden के साथ होंगे।

+0

समझ गए! धन्यवाद! – laukok

+0

जावास्क्रिप्ट ने मेरे लिए काम किया। लेकिन क्या आप मुझे बता सकते हैं कि यह क्यों काम करता है और केवल एक साधारण $ ("इनपुट [प्रकार = फ़ाइल]")। क्लिक करें() नहीं? –

+0

@ प्रकाशकमान, मैंने थोड़ा तर्क जोड़ा। – Joe

2

जो की विधि सही है। हालांकि, यह समाधान केवल कुछ ब्राउज़रों में काम करेगा। यह क्रोम और फ़ायरफ़ॉक्स पर काम करता है लेकिन ओपेरा, सफारी, या एंड्रॉइड गैलेक्सी एस अंतर्निर्मित ब्राउज़र पर नहीं (23 जून, 2012 के अनुसार मौजूदा संस्करणों पर परीक्षण किया गया)। वे ब्राउज़र संभवतः सुरक्षा कारणों से जेएस के माध्यम से अपलोड बटन को ट्रिगर करने में अक्षम हैं।

मैं अगर मैं एक समाधान है कि सभी आधुनिक ब्राउज़रों

+0

क्या आपको अभी तक कोई समाधान मिला है? मेरे पास एक समान समस्या है और ब्राउज़र में काम करने वाली कुछ चीज़ ढूंढने की आवश्यकता है। – newshorts

+2

नोप (10 वर्ण) – Neal

3

में काम करता है कि आप एक लेबल के बजाय का उपयोग नहीं करते लगता है इस पोस्ट अद्यतन करेगा? तो आप विशेषता के लिए उपयोग कर सकते हैं।

<style type="text/css"> 
    #file_upload { 
    visibility: hidden; 
    } 
</style> 
<a href="#" class="upload"> 
    <label for="file_upload">upload</label 
</a> 
<form action="upload.php" method="post" enctype="multipart/form-data" id="myForm"> 
    <input id="file_upload" type="file" multiple="multiple" name="file[]" /> 
    <input type="submit" name="upload" value="Submit"/> 
</form> 
<div id="output"></div> 
की [jQuery में एक फ़ाइल अपलोड क्लिक अनुकरण]
संबंधित मुद्दे

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