我在使用Select选项的值设置Switch Case时遇到问题,这是我正在使用的代码:
<form id="selectcub" name="selectcub">
<select id="cub01" name="cub01" class="cub">
<option value="2013" selected>2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
</select>
<select id="cub02" name="cub02" class="cub">
<option value="01">01</option>
<option value="02">02</option>
<option value="03" selected>03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
<a id="cubdl" href="#" class="button">Open</a>
</form>
<script type="text/javascript">
$(document).ready(function(){
switch($('#cub02 option:selected').val()) {
case 01:
alert("I am an alert box! 1");
break;
case 02:
alert("I am an alert box! 2");
break;
default:
//
}
});
</script>
我做错了什么?这是一个现场演示:http://jsfiddle.net/whC97/
答案 0 :(得分:5)
val()
总是会返回一个字符串。尝试在您的switch
声明中添加“01”,“02”等。
答案 1 :(得分:3)
问题是您绑定到$(document).ready()
,而不是点击链接。因此,javascript正在检查加载时的值,值为03
,您没有case
。
如果更改01
上选择的默认值并将案例放在引号中,则可以看到它正常工作。
答案 2 :(得分:2)
两件事: 一:如前所述,val()返回一个字符串,所以你必须使用例如'01'。 二:当dom准备就绪时调用该函数,因此如果你在代码中选择“03”,则只会发出警告。 你可能正在寻找一个事件监听器......
$(document).ready(function () {
$('#cub02').on('change', function(){
switch($('#cub02 option:selected').val()) {
case '01':
alert("I am an alert box! 1");
break;
case '02':
alert("I am an alert box! 2");
break;
}
});
});
答案 3 :(得分:1)
试试这个 -
演示-->
http://jsfiddle.net/whC97/5/
$(document).ready(function () {
switch (parseInt($('#cub02').val())) {
case 1:
console.log("I am an alert box! 1");
break;
case 2:
console.log("I am an alert box! 2");
break;
default:
}
});
答案 4 :(得分:0)
您正在尝试使用字符串表示形式,您应该使用parseInt(val)或切换case语句以使用数字的带引号的字符串版本
修改示例提供:
$(document).ready(function(){
var val = $('#cub02').val();
switch(parseInt(val)) {
case 01:
alert("I am an alert box! 1");
break;
case 02:
alert("I am an alert box! 2");
break;
default:
//
}
});