You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS如何批量下载复选框选中的ACF repeater字段文件

问题

我已经拿到复选框选中项对应的URL数组,格式为[url1,url2,url3],需要实现点击按钮后批量下载所有选中项对应文件的功能。
现有脚本已经可以正常收集复选框值并弹窗展示,但没法触发文件下载,原有代码如下:

function GetSelected() {
    // 初始化存储选中值的数组
    var selected = new Array();

    // 获取ACF字段组容器
    var tbl = document.getElementById("acf-group_62bea885d8d59");

    // 拿到容器内所有input复选框
    var chks = tbl.getElementsByTagName("INPUT");

    // 遍历把选中的复选框值存入数组
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].checked) {
            selected.push(chks[i].value);
        }
    }

    // 弹窗展示选中值
    if (selected.length > 0) {
        alert("Selected values: " + selected.join(","));
    }
};

使用场景是WordPress后台post.php编辑页,需要下载ACF repeater文件类型字段存储的选中文件,目前只支持单文件下载,要实现选中文件的批量下载,相关界面参考:界面截图


解决方案

原有代码只完成了选中值收集,没有触发下载的逻辑,直接替换成下面的代码即可:

function GetSelected() {
    var selected = [];
    var tbl = document.getElementById("acf-group_62bea885d8d59");
    var chks = tbl.getElementsByTagName("INPUT");

    // 收集选中的文件URL
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].type === 'checkbox' && chks[i].checked) {
            selected.push(chks[i].value);
        }
    }

    if (!selected.length) {
        alert("请先勾选需要下载的文件");
        return;
    }

    // 逐个触发下载,加间隔避免被浏览器拦截多文件请求
    selected.forEach(function(url, idx) {
        setTimeout(function() {
            var a = document.createElement('a');
            a.href = url;
            // 加download属性强制触发下载,而非在新标签打开预览
            a.download = '';
            a.rel = 'noopener';
            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
        }, idx * 300);
    });

    alert("已触发" + selected.length + "个文件的下载,若浏览器弹出多文件下载拦截提示,请选择允许");
}

补充说明

  • 代码里加了chks[i].type === 'checkbox'判断,避免把容器里其他类型的input(比如隐藏域、文本框)误算进去
  • 300毫秒的下载间隔可以根据实际需求调整,如果文件多、浏览器拦截概率高,可以改成500毫秒
  • 要是文件存在OSS/COS这类第三方存储上,需要提前配置好跨域规则,否则download属性会失效,点击后会变成打开文件预览而不是下载
  • 要保证复选框的value存的是文件的完整绝对URL,不要用相对路径,否则会出现404

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 18:39:27