jQuery过滤搜索多个选择框

时间:2013-11-21 12:22:19

标签: javascript jquery html

我有5个选择框,我想将最后4个选项选中的值变为这样的变量:val+val+val+val 第一个选择框用于选择类别,以便它正常工作。

下面你可以看到我的代码,但它没有完全正常工作,因为如果我没有选择任何内容,我会得到++++

<select name="Scat" id="Scat">
    <option value="">Select Manufacturer</option>
    <option value="2222">Michelin</option>
    <option value="3333">Continental</option>
</select>
<select name="Ssize" id="Ssize">
    <option value="">Select Size</option>
    <option value="30">30</option>
    <option value="40">40</option>
</select>
<select name="Sprofile" id="Sprofile">
    <option value="">Select Profile</option>
    <option value="60">60</option>
    <option value="80">80</option>
</select>
<a class="find" href="#">find</a>
<script type="text/javascript">
$('.find').click(function(e){
    var Scat = $('#Scat option:selected').val();
    var allVariables = $("select option:selected").map(function(){ 
        return this.value 
    }).get().join("+");
    alert(allVariables);
    if(Scat = 0){
        alert("Choose a Category");
    } else {
        window.location = "http://something.com/category="+Scat+"/search="+allVariables;
        //http://something.com/category=2222/search=60+30/
    };
});
</script>

我错过了什么?

1 个答案:

答案 0 :(得分:1)

第一点:您使用=作为比较运算符,但在JavaScript中,您必须使用=====

主要问题是由join('+')方法引起的。如果只有那两个相关的下拉列表,我建议手动输入每个下拉列表:

$('.find').click(function(e){
    var size, profile, Scat, searchString;
    Scat = $('#Scat option:selected').val();

    if(!Scat){
        alert("Choose a Category");
        return;
    }

    size = $('#Ssize option:selected').val();    
    profile = $('#Sprofile option:selected').val();
    if size && profile) {
        searchString = size + '+' + profile;
    } else if (!size && !profile) {
        searchString = ""; 
    } else if (!size) {
        searchString = size;
    } else if (!profile) {
        searchString = profile;
    }

    window.location = "http://something.com/category="+Scat+"/search=" + searchString;
});

Fiddel http://jsfiddle.net/Kj6Rr/5/