仅使用迭代的form.submit()操作

时间:2016-04-04 11:45:33

标签: javascript jquery forms download

我只从表格submit()下载最后一个文件,而我希望使用for循环下载多个文件。我是JavaScript和jQuery的新手。请帮忙。

我向某个Web API网址(WEBAPIURL)发送请求,该网址采用令牌(TOKEN)进行身份验证,文件参考号(fileId)。我已正确提供所有参数。我可以下载每个单独的文件,但在通过for循环发送时无法下载多个文件。只下载了最后一个文件。

for(id in fileIDs){

    var form = $('<form></form>').attr('action', WEBAPIURL).attr('method', 'post');
    form.append($('<input></input>').attr('type', 'hidden').attr('name', "token").attr('value', TOKEN));
    form.append($('<input></input>').attr('type', 'hidden').attr('name', "fileId").attr('value', fileIDs[id]));
    form.appendTo('body').submit().remove();
}

1 个答案:

答案 0 :(得分:0)

根据您提供的有限信息,我认为您对多个字段使用相同的名称,您应该使用带有[]的数组名称作为多个值,然后应该在$ _POST的服务器端获取一个数组。

for(id in fileIDs){

    var form = $('<form></form>').attr('action', WEBAPIURL).attr('method', 'post');

    //I don't know what you are doing with TOKEN, make this as array if needed
    form.append($('<input></input>').attr('type', 'hidden').attr('name', "token").attr('value', TOKEN));

    //edit here in field name to make it a array of field
    form.append($('<input></input>').attr('type', 'hidden').attr('name', "fileId[]").attr('value', fileIDs[id]));
    form.appendTo('body').submit().remove();
}