2012-11-02 57 views
3

如何從下面的代碼獲取索引值?BlueImp Jquery上傳 - 從data.files獲取索引

add: function (e, data) { 
    $.each(data.files, function (index, file) { 
     alert('Added file: ' + index + " -- " + file.name); 
}); 

即使我有(3)個文件,INDEX總是返回(0)。 FILE.NAME的作品,我可以看到所有(3)文件。

這是輸出:

  • 添加文件:0 - dog.jpg
  • 添加文件:0 - cat.jpg
  • 添加文件:0 - honeybadger.jpg

這是我所期待的/預期的效果:

  • 添加的FI樂:0 - dog.jpg
  • 添加文件:1 - cat.jpg
  • 添加文件:2 - honeybadger.jpg

一些調試後,似乎在提交表單( 3)次,這就是爲什麼我得到(0)每個文件。另外,我已經複製了GIT WIKI的代碼,但沒有運氣。

希望BlueImp專家能幫忙。

更新代碼: 下面的代碼現在返回各指標

$('#fileUpload1').fileupload(
{ 
    replaceFileInput: false, 
    dateType: 'json', 
    url: 'Handlers/AjaxFileHandler.ashx', 
    singleFileUploads: false, 
    autoUpload: false, 
    add: function (e, data) { 
     $('#upLoadButton').click(function() { 
      $.each(data.files, function (index, file) { 
       alert('Added file: ' + index + " -- " + file.name); 

       var v = $('input[data-id=' + index + ']').val(); 
       var d = $('select[data-id=' + index + ']').val(); 
       alert('textField:' + v + ' selected: ' + d);    
      }); 

      data.submit(); 

     }); 
    }, 
}); 

}); 
+1

如何data.files樣子?? –

+0

其HTML對象>文件(輸入類型=文件):http://www.alltechtips.com/html/objects/input_file.html –

回答

3

你沒有正確使用方法Add功能回調。 事實上,這個事件是每個單個文件默認觸發的。表示文件的數據不是文件數組。 您需要設置singleFileUploads爲false,以獲得想要的東西如下面的例子中:

$('#fileupload').fileupload({ 
     previewSourceMaxFileSize: 0, 
     acceptFileTypes: /(\.|\/)(gif|jpe?g|png|bmp|svg|wmv|avi|mpe?g|mp4|ppt|pps)$/i, 
     global:false, 
     singleFileUploads:false, //set this to false to handle multi files upload behaviour 
     add:function (e, data) { 
      $.each(data.files, function (index, file) { 
       alert('Added file: ' + index + " -- " + file.name); 
      }); 
     }, 
     autoUpload: false 
    }); 
+0

上述代碼正在工作,但是,當上傳發生時,只有一個文件退出三上傳。查看上面更新的代碼。 –