2012-07-10 18 views
30

मैं एक कड़ी के रूप में एक लिंक अधिनियम बनाने के लिए,कैसे एक फ़ाइल इनपुट

<a id="upload-file">Upload your photo</a> 

और अगर क्लिक किया है, मैं इसे एक ब्राउज़ फ़ाइल इनपुट

<input id="upload-file" type="file"/> 

मैं कैसे हासिल करेगी के रूप में कार्य करना चाहते हैं इस?

उत्तर

60

एचटीएमएल

<input id="upload" type="file"/> 
<a href="" id="upload_link">Upload your photo</a>​ 

सीएसएस

#upload{ 
    display:none 
} 

जे एस

$(function(){ 
    $("#upload_link").on('click', function(e){ 
     e.preventDefault(); 
     $("#upload:hidden").trigger('click'); 
    }); 
}); 

​DEMO.

+2

वास्तव में स्मार्ट समाधान। इसका स्पष्ट रूप से सही उत्तर है, और मैंने खरोंच से इसे समझने के लिए घंटों खर्च किए होंगे। धन्यवाद। – usumoio

+1

आपका स्वागत है और नया साल @usumoio :-) –

0

संपादित:

देखें इस डेमो: http://jsfiddle.net/rathoreahsan/s6Mjt/

jQuery:

$("#upload").click(function(){ 
    $("#upload-file").trigger('click'); 
}); 

एचटीएमएल

<a href="javascript:void(0)" id="upload">Upload your photo</a> 
<input id="upload-file" type="file"/> 

सीएसएस

#upload-file { 
    display:none; 
} 

या

आप इस तरह अच्छा प्लग इन का उपयोग कर सकते हैं:

http://blueimp.github.com/jQuery-File-Upload/

2

आप एक छिपा हुआ <input> टैग हो सकता है आप कर सकते हैं फिर 01 पर कॉल करें एक क्लिक अनुकरण करने के लिएपर।

या, आप एक आईडी <input> टैग कर सकते हैं जिसमें एक आईडी है, और फिर बस अपने लिंक में एक लेबल विशेषता जोड़ें।

+0

कृपया अपने दूसरे विकल्प का एक उदाहरण दें। – Pyol7

6

निम्नलिखित इच्छा समस्या हल

एचटीएमएल

<input id="upload-file" type="file"/> 
<a id="fileupload">Upload your photo</a> 

सीएसएस

#upload-file{ 
    display: none; 
}​ 

js

$("#fileupload").click(function(){ 
    $("#upload-file").click(); 
});​ 

http://jsfiddle.net/WXBKj/

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