gpt4 book ai didi

javascript - 多种进度状态+Ajax表单插件

转载 作者:行者123 更新时间:2023-11-28 01:52:31 25 4
gpt4 key购买 nike

我正在使用 Ajax 表单插件,并且我有一个循环来发送多个请求。我正在尝试获取每个文件的单独进度。似乎可行,但文件的进度仅显示在最后 <p> 中代码。

for (var i = 0; i < inp.files.length; i++) {
$('form').ajaxSubmit({
beforeSend: function() {
$('body').append('<p class="c'+ i +'"></p>');
var classe = '.c' + i;
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';

$(classe).append(percentVal);
//console.log(percentVal, position, total);
}
});
}

2 个文件的 HTML 输出:

<p class="c0"/>
<p class="c1">
79%
100%
81%
100%
</p>

有两个100%看来它得到了两个文件的进度。但是,它只是打印在最后一个元素中。谢谢

最佳答案

因为在 c0 的响应到来之前 classe 更改为 c1...将其放入匿名函数中。

for (var i = 0; i < inp.files.length; i++) {
(function () {
var classe = '.c' + i;
$('form').ajaxSubmit({
beforeSend: function () {
$('body').append('<p class="c' + i + '"></p>');
},
uploadProgress: function (event, position, total, percentComplete) {
var percentVal = percentComplete + '%';

$(classe).append(percentVal);
//console.log(percentVal, position, total);
}
});
}());
}

(未经测试)

或者您必须更改 Ajax 请求以进行同步

关于javascript - 多种进度状态+Ajax表单插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19541165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com