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方法
为什么会发生?以及如何解决这个问题?
在此代码中,您将在对象选项内定义一个名为 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)