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プロパティはありません。IE 10 で導入されました。この例を参照してくださいhttp://jsfiddle.net/RtqnZ/<input type=file />

multipleまた、あなたのプロパティがありませんinput

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

于 2012-11-26T18:57:54.580 に答える