Dropzone init() 没有执行

Vik*_*ash 4 html javascript jquery dropzone.js

我正在自定义dropzone.js

我的布局是:

在此处输入图片说明

我的 HTML 内容是:

<form action="/Drag/SaveUploadedData/" enctype="multipart/form-data" id="dropzoneForm">
<div class="dropzone" id="mydropzone"></div>
<div style="position:absolute;bottom:0;">
    <ul style="color:red;">
        <li style="list-style-type:square;">
            Invalid file name/type
        </li>
    </ul>
</div>
<input type='file' id='fileUpload' style='opacity:0;' multiple onchange="javascript: addFilesToDropzone();" />
Run Code Online (Sandbox Code Playgroud)

我使用一个链接作为名为“浏览”的文件上传

单击此按钮后,将打开一个打开文件对话框,我们将选择该文件。

我已经写onchange="javascript: addFilesToDropzone();"#fileUpload. 这将触发以下功能,

function addFilesToDropzone()
{
    document.getElementById('mydropzone').files = document.getElementById('fileUpload').files;

    Dropzone.options.mydropzone = {
        init: function () {
            //var dropZone = this;
            if (document.getElementById('mydropzone').files.length > 0) {
                alert();
                $.each(files, function (index, item) {
                    this.emit('addedfile', 'uploading');
                });
            }

        }
    };
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,它没有执行该Dropzone.options.mydropzone行,因此它没有执行init().

我从#fileUpload输入中获取了文件,但它没有执行init()以调用dropzone.js 中addedfile方法

为什么会发生?以及如何解决这个问题?

Saa*_*aar 6

在此代码中,您将在对象选项内定义一个名为 mydropzone 的 javascript 对象,该对象位于对象 Dropzone 内。

在对象 mydropzone 内部,您定义了一个名为 init 的函数。

 Dropzone.options.mydropzone = {
        init: function () {
            //var dropZone = this;
            if (document.getElementById('mydropzone').files.length > 0) {
                alert();
                $.each(files, function (index, item) {
                    this.emit('addedfile', 'uploading');
                });
            }

        }
    };
Run Code Online (Sandbox Code Playgroud)

现在为了调用这个函数,你需要做:

Dropzone.options.mydropzone.init();
Run Code Online (Sandbox Code Playgroud)