我有三个选择框:

<select id="one">
    <option value="default">Select Product</option>
    <option value="value-a1">string1</option>
    <option value="value-a2">string2</option>
    <option value="value-a3">string3</option>
</select>

<select id="two">
    <option value="default">Select Version</option>
    <option value="value-b4">string4</option>
    <option value="value-b5">string5</option>
    <option value="value-b6">string6</option>
</select>

<select id="three">
    <option value="default">Select Architecture</option>
    <option value="value-c6">string7</option>
    <option value="value-c7">string8</option>
    <option value="value-c8">string9</option>
</select>


根据用户为这三个框选择的内容,我想下载一个文件,例如:

mysite.com/download/value-a1_value-b2_value-c3

基本上,该文件是安装程序,可以是特定产品,特定版本和体系结构(以EXE为例;还将具有DMG和ZIP):

mysite.com/download/product-a_version-b_arch-64.exe

我知道我的方法可能不是最好的,所以我愿意提出建议,但是如果我可以使用这种方法,那将是很好的。

对于JavaScript,我在想这样的事情:

function download_file(version_id, os_id, arch_id) {

    if (product_id == 'default' && version_id == 'default' &&
        arch_id == 'default') {
        return;
    }

    else if (product_id != 'default') {
        window.location = 'mysite.com/download/Install_' +
            product_id + '_' + version_id + '_' + arch_id + '.exe';
    }
}


我想我的主要问题是如何选择在三个选择框中选择的选择值。我试图将三个选择框的结果粘合在一起,并从中确定一条路径。

注意

实际上,选择框比实际编写的要多,但是原理是相同的。使用下面的答案,我能够使文件正确无误。感谢您的所有帮助!

最佳答案

jsFiddle Demo

​$(function() {
    var downloadButton = $( selector-for-your-button );

    $(downloadButton).click(function() {

        download_file( $('#one').val(), $('#two').val(),
                      $('#three').val());

    });
});

function download_file(product_id, version_id, arch_id) {

    // if any of them is default, cancel (use or ||)
    if (product_id == 'default' || version_id == 'default' ||
        arch_id == 'default') {
            alert("choose stuff!");
        return;
    }

    else if (product_id != 'default') {
        //window.location = 'mysite.com/download/Install_' +
        //    product_id + '_' + version_id + '_' + arch_id + '.exe';
        console.log(product_id + '_' + version_id + '_' + arch_id + '.exe');
    }
}
​

10-06 07:39
查看更多