2013-01-10 83 views
11

我有一個自定義的文件輸入一個文件輸入:添加下降文件來使用jQuery

<div id="wrapper"> 
    <span id="fake-text-input"></span> 
    <button id="select-a-file"></button> 
    <input id="hidden-file-input" type="file" /> 
</div> 

input[type="file"]是隱藏的(display: none),並選擇一個文件被監聽\觸發clickchange事件處理。

我也想支持文件放置。當一個文件被丟棄在#fake-text-input上時,我能夠聽到drop事件,但我不知道如何將drop事件轉發到input[type="file"] ..這甚至有可能嗎?

我沒有興趣在文件輸入不透明度技巧:)

$('body').on('drop', '#wrapper', function(e) { 
    var file = e.originalEvent.dataTransfer.files[0]; 

    // I have the file.. now what? 
}); 
+0

您可以提供的代碼你試過了什麼? – insomiac

+0

你應該看看這個SOq。 http://stackoverflow.com/questions/8006715/drag-drop-files-into-standard-html-file-input – cggaurav

+0

@insomiac看看我的編輯。雖然沒有太多的代碼.. – tamir

回答

12

這是我在谷歌瀏覽器的工作,現在的問題與其他瀏覽器

$("input[type='file']").prop("files", e.originalEvent.dataTransfer.files); 
+3

好吧,讓我知道如果你找到解決方案 – tamir

+0

@nassimPHP,你找到了解決方案? –