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