Nis*_*Nis 2 jquery javascript-events blueimp jquery-file-upload
在这个插件中,我们可以设置文件上传的各种条件/限制(例如acceptFileTypes,maxFileSize,maxNumberOfFiles等).
无论何时添加文件,都会触发一个事件" fileuploadadd ",一旦成功添加文件,另一个事件将被触发" fileuploadadded ".
但是,当添加文件并且它失败了这些条件/限制之一(例如,用户尝试上传2GB文件,或文本文件而不是图像)时,无法以编程方式找出已发生这种情况.
当此条件失败时,不会触发任何事件.我可以使用什么来检查用户选择的文件是否有错误,因此尚未添加到队列中.
我能想到的唯一方法就是触发" 添加 "事件并等待,看看它是否不会触发" 添加 "事件然后出现问题.但是,我既不想长时间停止所有处理,也不想太快检查" 添加 "事件是否已经触发.
要么
任何人都可以指导如何从这个插件中抛出自定义事件(例如fileaddfailedevent)?
好吧,我想出了一种触发此要求的自定义事件的方法.如果有人想知道如何实现相同的话,在这里发布答案.
我们需要更改的核心文件应位于"js\jquery.fileupload-ui.js"
在add调用里面,add: function (e, data) {最后一个监听器是}).fail(function () {.这应该是大约120号线(取决于版本)
我们需要添加以下行:
that._trigger('addfileerror', e, data);
总结一下你的失败监听器应如下所示:
}).fail(function () {
if (data.files.error) {
data.context.each(function (index) {
var error = data.files[index].error;
if (error) {
$(this).find('.error').text(error);
}
});
// added custom event to check whether any error has occured while adding the file.
that._trigger('addfileerror', e, data);
}
})
Run Code Online (Sandbox Code Playgroud)
现在我们可以像任何其他侦听器一样绑定侦听器以检查此事件.
$('#fileupload').bind('fileuploadaddfileerror', function (e, data){
console.log('Custom Error Event Fired');
});
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人.
更新:
尽管该文档没有明确提及,但我刚刚了解到"fileuploadprocessfail"事件对于上述要求完全相同.
| 归档时间: |
|
| 查看次数: |
5545 次 |
| 最近记录: |