Dropzone init()没有执行

时间:2015-09-05 11:28:04

标签: javascript jquery html dropzone.js

我正在自定义 dropzone.js

我的布局是:

enter image description here

我的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();" />

我使用的链接名为“ 浏览

的fileUpload

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

我写过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');
                });
            }

        }
    };
}

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

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

为什么会这样?以及如何解决这个问题?。

1 个答案:

答案 0 :(得分:4)

在此代码中,您将在对象Dropzone内部定义一个名为mydropzone的javascript对象。

在对象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');
                });
            }

        }
    };

现在,为了调用此功能,您需要执行以下操作:

Dropzone.options.mydropzone.init();