4

如何从以下代码中获取索引值?

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

即使我有 (3) 个文件,索引也总是返回 (0)。FILE.NAME 有效,我可以看到所有 (3) 个文件。

这是输出:

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

这是我期望/期望的结果:

  • 添加文件: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();

        });
    },
});

});
4

1 回答 1

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
    });
于 2012-11-03T19:39:31.277 回答