我有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>
我错过了什么?
答案 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/