我希望仅在满足某些其他条件(页面上其他位置已提供要上传文件的元数据)时才进行上传。否则,请勿开始上传,甚至不要创建预览。只需输入一个alert
,说在上传任何项目之前就需要输入元数据。
我确实可以通过使用非null参数调用提供的accept
函数来抢占done
处理程序中的上载。例如
done("You need to enter a UPC code for this image.");
return false;
但是,预览仍会创建,并带有error
覆盖。
我尝试了几种方法,包括捕获drop
事件没有成功。即使我取消了该事件(包括任何进一步的下游处理),它仍然希望显示预览。
答案 0 :(得分:0)
结果证明,答案可能太简单了:我需要在removeFile
处理程序中调用accept
。
因此,我的accept
处理程序看起来像这样:
accept: function(file) {
if (/* condition not met */) {
alert("You haven't met the condition. No upload for you!");
deleteOnServer = false;
this.removeFile(file);
deleteOnServer = true;
return false;
}
/* otherwise, do normal "accept" processing. */
请注意,由于我也有一个标志,因此我要检查何时要做的只是从dropzone中删除文件,但不要将它们放在服务器上。 (即,我可能正在上传以替换已经存在的内容。)因此,我
在我的Dropzone init
函数中注册一个“ removedFile”事件处理程序:
init: function() {
this.on("removedFile", function(file) {
if (!deleteOnServer) {
return false;
}
/* otherwise, send $.ajax(DELETE) request to server */
:
}