15

我有一个自定义文件输入:

<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

我也想支持文件删除。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?
});
4

2 回答 2

22

这在谷歌浏览器中与我一起使用,现在其他浏览器的问题

$("input[type='file']").prop("files", e.originalEvent.dataTransfer.files);
于 2013-03-28T03:55:36.437 回答
3

从@NassimPHP 的回答来看,这行得通!

$("input[type='file']").prop("files", e.dataTransfer.files);
于 2019-08-01T15:45:08.483 回答