0

我有以下 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 中的这个错误?

4

1 回答 1

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

于 2012-11-26T18:57:54.580 回答