我使用blueimp的jQuery文件上传时遇到了一个奇怪的情况。
我的代码就像这样简单:
<div><input type="file" name="files" id="f1"></div>
<div><input type="file" name="files" id="f2"></div>
<script>
$("input:file").each(function () {
$(this).fileupload({
url: "./?a=upload&t=",
dataType: 'json',
add: function (e, data) {
alert("add");
/* same as default implementation */
if (data.autoUpload || (data.autoUpload !== false &&
$(this).fileupload('option', 'autoUpload'))) {
data.process().done(function () {
data.submit();
});
}
},
start: function (e) {
alert("start");
}
});
});
</script>
在Firefox和Chrome中一切正常:点击任何输入字段时,会显示“添加”和“开始”消息,并提交请求。
在IE 8中,似乎创建了两个实例(加载页面时没有出现错误),但是当我单击文件输入并选择要上载的文件时,只显示“添加”消息,然后IE触发错误:
cannot call methods on fileupload prior to initialization; attempted to call method 'process'
页面中只有一个文件输入控件可以正常工作,所以我想这个问题必须与多个实例有关。
我正在使用jQuery上传插件9.8.1和jQuery 1.11.1。
提前致谢。