jQuery文件上传:在$ .each中使用counter

时间:2013-03-18 17:17:32

标签: counter blueimp jquery-file-upload

我正在使用jQuery-File-Upload的fileuploaddone回调来向表单插入隐藏的输入以将其发送到服务器:

$('#fileupload').bind('fileuploaddone', function (e, data) {
    $.each(data.files, function (index, file) {
        $('<input type="hidden" name="file' + index + '" value="' + file.name + '">').appendTo('#fileupload');
    }); 
});

问题是计数器index不会递增。插入到我的表单中的内容:

<input type="hidden" name="file0" value="filename.png">
<input type="hidden" name="file0" value="filename2.png">
etc

我试图使用一个单独的计数器:

$('#fileupload').bind('fileuploaddone', function (e, data) {
    var i = 0;
    $.each(data.files, function (index, file) {
        $('<input type="hidden" name="file' + i + '" value="' + file.name + '">').appendTo('#fileupload');
        i++;
    }); 
});

但结果是一样的。有什么诀窍?

1 个答案:

答案 0 :(得分:0)

您的集合data.files每个只包含1个对象,因此您的计数器/索引永远不会增加。

看一下以下一行。

$('#fileupload').bind('fileuploaddone', function (e, data) {

事件'fileuploaddone'正在为每个文件发生