我有一个表单,用于在点击提交按钮时上传多个文件。
例如我正在上传以下文件
student.png
animal.png
pet.png
我使用以下ajax在后端发送值(code reference taken from)。
$.ajax({
type:"POST",
url:this.vpb_settings.vpb_server_url,
data:dataString,
cache: false,
contentType: false,
processData: false,
success:function(response)
{
console.log(response);
}
});
当我尝试通过“console.log()”打印响应时,我得到了上传文件的名称列表,这是我的要求之一。 所以在使用“console.log(response)”之后我得到输出为
学生
动物
宠物
现在我想计算得到的名字数量,为此我使用了这个代码,“console.log(response.length)”,但我得到了输出
7
6
3
我希望响应为3,因为列表中有3个项目
任何人都可以告诉我们如何做到这一点
答案 0 :(得分:1)
看起来你每个文件都使用一个ajax调用,所以当然,每个response
是一个文件(一个字符串)的名称,而不是一个数组,因此
'student'.length
=> 7 'animal'.length
=> 6 'pet'.length
=> 3 如果您需要大量文件,可以使用全局计数器,如下所示:
var counter = 0; //<--needs to be declared somewhere it gets initialized once only
function someFuncContainingTheAjaxCall(){
$.ajax({
type:"POST",
url:this.vpb_settings.vpb_server_url,
data:dataString,
cache: false,
contentType: false,
processData: false,
success:function(response)
{
console.log('Files so far ' + (++counter));
}
});
}
HIH
答案 1 :(得分:0)
您可以在外部作用域中创建任何变量,并在成功回调时增加它。此外,您需要在呼叫前将其重置为0.