2011-12-05 18 views
4

我加入了文件導入功能將現有頁面。文件對話框,不* <input>

我想這個使用JavaScript和不修改的頁面,即做。沒有添加「input type =」file「」標籤,每個人似乎都在談論。

我已經添加的按鈕,現在我想的事件來顯示文件對話框,用戶瀏覽文件和JavaScript提交文件到服務器進行驗證。

我該怎麼做? 順便說一句,主要優先級是打開文件對話框,所以不需要用戶或提交部分,如果你不知道它。

THX

回答

5

好吧,如果我理解正確的,你想要什麼,是一些像這樣...

<input type="button" value="Add File" onclick="document.getElementById('file').click()" /> 
<input type="file" id="file" style="display:none" /> 

Hidding的file對象並調用另一個對象的文件對話框。對 ?

編輯:只有JavaScript

onclick="var f=document.createElement('input');f.style.display='none';f.type='file';f.name='file';document.getElementById('yourformhere').appendChild(f);f.click();"

代替yourformhereformid將這個在你的對象!

+0

東西像那樣,是的,但最好不必使用任何標籤。我正在編寫一個現有的應用程序的頂部,目前不允許太多地改變網站。 – jvlarsen

+0

你必須使用Javascript嗎?看我的編輯! – 2011-12-05 13:31:14

+0

dom元素沒有方法「點擊」 –

-1

我壓住第一按鈕這樣

<input style="display:none;" type="file" id="file" name="file"/> 

以下觸發器輸入文件:

<i class="fa fa-camera-retro fa-3x" type="button" data-toggle="tooltip" title="Escoje tu foto de perfil" id="secondbutton" ></i>(ⅰ使用的圖標)

觸發我的第二個按鈕:

$("#secondbutton").click(function() { 
     $("#file").click(); 
}); 

http://api.jquery.com/click/

+0

仍在使用 agilob

0

這是一種不使用任何Javascript的方式,它也與每個瀏覽器兼容,包括移動。


順便說一句,在Safari中,input被當display: none隱藏禁用。更好的方法是使用position: fixed; top: -100em


<label> 
    Open file dialog 
    <input type="file" style="position: fixed; top: -100em"> 
</label> 

如果你喜歡,你可以通過使用labelfor指向輸入的id這樣去「正確的方式」

<label for="inputId">file dialog</label> 
<input id="inputId" type="file" style="position: fixed; top: -100em">