Jquery在IE 9中导致错误

时间:2012-11-26 18:48:57

标签: jquery arrays internet-explorer

我有以下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中修复此错误?

1 个答案:

答案 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