javascript - 为什么我的 jQuery 函数只打开一个链接而不打开代码中列出的其他链接?

标签 javascript jquery html checkbox

我目前正在我正在开发的网站中实现一个脚本,该脚本会检查用户选中了哪些复选框,然后一旦用户单击提交,它就会下载所述文件。我遇到的问题是,无论点击了多少复选框,都只会下载第一个文件,而不会下载其他文件。

这是我的代码:

// Global manual variables
var classic;
var racing;
var flexer;
// Global handbook variables
var classicEng;
var classicMulti;
var flexerEng;
var racerEng;

// Checkbox download function

jQuery(document).ready(function() {
    classic = jQuery('#edit-submitted-manuals-required-1');
    racing = jQuery('#edit-submitted-manuals-required-2');
    flexer = jQuery('#edit-submitted-manuals-required-3');
    classicEng = jQuery('#edit-submitted-handbooks-required-1');
    classicMulti = jQuery('#edit-submitted-handbooks-required-2');
    flexerEng = jQuery('#edit-submitted-handbooks-required-3');
    racerEng = jQuery('#edit-submitted-handbooks-required-4');

    jQuery('#edit-submit').click(function() {  
        if (classicEng.is(':checked') && classicMulti.is(':checked') && flexerEng.is(':checked') && racerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/classic-xl-45.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/racing-45-english.pdf', '_blank');

        } else if (classicEng.is(':checked') && classicMulti.is(':checked') && flexerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/classic-xl-45.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-45-english.pdf', '_blank');

        } else if (classicEng.is(':checked') && classicMulti.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/classic-xl-45.pdf', '_blank');

        } else if (classicEng.is(':checked') && flexerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-45-english.pdf', '_blank');

        } else if (classicEng.is(':checked') && racerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/racing-45-english.pdf', '_blank');  

        } else if (classicMulti.is(':checked') && flexerEng.is(':checked') && racerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/racing-45-english.pdf', '_blank');  

        } else if (classicMulti.is(':checked') && flexerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-45-english.pdf', '_blank'); 

        } else if (classicEng.is(':checked') && racerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45.pdf', '_blank');
            window.open('/sites/default/files/manuals/racing-45-english.pdf', '_blank'); 

        } else if (flexerEng.is(':checked') && racerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/flexer-45-english.pdf', '_blank');
            window.open('/sites/default/files/manuals/racing-45-english.pdf', '_blank'); 

        } else if (classicEng.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-45-english.pdf', '_blank');

        } else if (classicMulti.is(":checked")) {
            window.open('/sites/default/files/manuals/classic-xl-45.pdf', '_blank');

        } else if (flexerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/flexer-45-english.pdf', '_blank');

        } else if (racerEng.is(':checked')) {
            window.open('/sites/default/files/manuals/racing-45-english.pdf', '_blank'); 

        } else if (classic.is(':checked') && racing.is(':checked') && flexer.is(':checked')) { 
            window.open('/sites/default/files/manuals/classic-xl-parts.pdf', '_blank');
            window.open('/sites/default/files/manuals/racing-45-parts.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-xl-parts.pdf', '_blank');

        } else if (classic.is(':checked') && flexer.is(":checked")) {
            window.open('/sites/default/files/manuals/classic-xl-parts.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-xl-parts.pdf', '_blank'); 

        } else if (classic.is(':checked') && racing.is(":checked")) {  
            window.open('/sites/default/files/manuals/classic-xl-parts.pdf', '_blank')
            window.open('/sites/default/files/manuals/racing-45-parts.pdf', '_blank');

        } else if (racing.is(':checked') && flexer.is(':checked')) {
            window.open('/sites/default/files/manuals/racing-45-parts.pdf', '_blank');
            window.open('/sites/default/files/manuals/flexer-xl-parts.pdf', '_blank');

        } else if (classic.is(':checked')) {
            window.open('/sites/default/files/manuals/classic-xl-parts.pdf', '_blank');

        } else if (racing.is(':checked')) {
            window.open('/sites/default/files/manuals/racing-45-parts.pdf', '_blank');

        } else if (flexer.is(':checked')) {
            window.open('/sites/default/files/manuals/flexer-xl-parts.pdf', '_blank');

        }  else {
            alert("Please choose a file to download");
        }
    });
});

如果有人能发现我在这里做错了什么,将不胜感激!

最佳答案

因为您正在使用 else if 。而且,如果您快速尝试打开新窗口,大多数浏览器会默认阻止打开新窗口。用户将不得不在他们这边允许弹出窗口。

关于javascript - 为什么我的 jQuery 函数只打开一个链接而不打开代码中列出的其他链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876709/

相关文章:

javascript - 在 div 中调用 javascript

jquery - jquery 和 asp.net 的 json 原始错误

javascript - 定位 Span jQuery Controller

javascript - 网络 worker 和 Canvas

javascript - 94个字符一行任务,圆交点

javascript - 如何将值存储在数组中

javascript - 将 html 标签附加到现有文本的最佳方法是什么?

javascript - 设置高度不随 jQuery 内联变化

javascript - 如何使用javascript显示隐藏/显示菜单?

javascript - 在 React 中渲染对象数组