我有以下HTML代码
<label class="fileinput-button" id="fileUpload-label">
<span class="btn btn-add" id="fileUpload-span">Add a file..</span>
<div id="fileinput-outer">
<input type="file" name="files[]" id="fileUpload">
</div>
</label>
然后我使用Jquery获取Input type = File
的文件列表$('#fileUpload').live('change', function () {
$.map($('#fileUpload').get(0).files, function (file) {
$('#fileList')
.append(CreateFileList(file.name, true));
});
});
这在Chrome和Firefox中运行良好,但在IE中错误是
Unable to get value of the property 'length': object is null or undefined
所以我开始麻烦并且有这个代码
var arrFiles[];
arrFiles = $('#fileUpload').get(0).files;
if(arrFiles.length === 0) {
alert('empty');
} else {
alert('has value');
}
Chrome和Firefox - 代码和警报按预期工作,但IE仍然会抛出错误
Unable to get value of the property 'length': object is null or undefined
似乎IE可能与Jquery Get ..
有问题任何人都知道如何使用或不使用Jquery在IE中修复此错误?
答案 0 :(得分:5)
jQuery().get
工作正常,你没有打破它。但是,对于IE 9,files
上没有<input type=file />
属性,它是在IE 10中引入的。请参阅此示例http://jsfiddle.net/RtqnZ/
您还错过了multiple
input
媒体资源
参考:http://msdn.microsoft.com/en-us/library/ie/hh772931(v=vs.85).aspx