我正在自定义 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();" />
我使用的链接名为“ 浏览 ”
的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
方法
为什么会这样?以及如何解决这个问题?。
答案 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();