我有一个自定义文件输入:
<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
)并且通过收听\触发click
和change
事件来处理选择文件。
我也想支持文件丢弃。在drop
上删除文件但我不知道如何将#fake-text-input
事件转发到drop
时,我能够收听input[type="file"]
事件。它甚至可能吗?
我对文件输入不透明技巧不感兴趣:)
$('body').on('drop', '#wrapper', function(e) {
var file = e.originalEvent.dataTransfer.files[0];
// I have the file.. now what?
});
答案 0 :(得分:12)
这在谷歌浏览器中与我合作,现在与其他浏览器的问题
$("input[type='file']").prop("files", e.originalEvent.dataTransfer.files);
答案 1 :(得分:1)
从@NassimPHP的答案来看,这行得通!
$("input[type='file']").prop("files", e.dataTransfer.files);