2012-11-26 59 views
0

我有以下的HTML代碼jQuery的獲取IE造成錯誤9

<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獲得與輸入類型的文件列表=文件

$('#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的問題找..

任何人知道如何我可以解決這個錯誤在IE瀏覽器有或沒有JQuery的?

+0

有你嘗試使用'.data('files',files)'而不是'.get(0).files = files'來存儲文件?在IE9之前,我有問題將數據綁定到DOM。 –

回答

5

jQuery().get工作正常,你還沒打破它。然而,沒有files財產上<input type=file />爲IE 9,它在IE 10中引入見這個例子http://jsfiddle.net/RtqnZ/

你還缺少對multiple財產您input

參考:http://msdn.microsoft.com/en-us/library/ie/hh772931(v=vs.85).aspx

+0

當我在IE中運行jsFiddle時,出現錯誤http://jsfiddle.net/RtqnZ/ < - Line:35錯誤:無法獲取屬性'length'的值:object爲null或undefined –

+0

@ DavidKEgghead?當然,這是我的觀點,它不適用於IE <10' –