我正在使用Blueimp的jQuery-File-Upload插件(基本版),我遇到了问题。第一个文件上传按预期工作,但是当我想发送另一个文件时,它无法正常工作。
fileinput.fileupload({
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
//do stuff with files
});
}
}).bind('fileuploadadd', function (e, data) {
data.context = $('<p/>').text('Uploading...').appendTo(document.body);
data.submit();
});
编辑:
好的,我知道造成问题的原因。但我不知道如何解决这个问题。我在已设置display none的输入上使用了fileupload插件。我用另一个按钮触发它,该按钮在隐藏输入上使用click()/ trigger(&#39; click&#39;)方法。第一个触发器工作正常,但第二个触发器选择文件对话框。选择什么都没发生。当我直接使用输入字段时,它可以正常工作。如何克服这个问题?
答案 0 :(得分:6)
问题出现是因为jQuery-File-Upload 克隆并在每次上传后替换输入字段(docs)。
因此,您在旧的文件输入标记上触发click
事件,该标记不再有效。
要解决此问题,您至少有两个选择:
在每个blueimp click
之后,在新文件输入上触发add
事件
事件
在插件设置上使用replaceFileInput: false
(这样会
在某些浏览器中降低用户体验)。 (docs)
答案 1 :(得分:0)
很难回复,因为没有足够的信息,但这样的事情可能有效:
function test() {
fileinput.fileupload({
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
//do stuff with files
});
}
}).bind('fileuploadadd', function (e, data) {
data.context = $('<p/>').text('Uploading...').appendTo(document.body);
data.submit();
test();
});
}
test();