我有一些jquery检查表单选择的值,然后执行某些操作。它按预期工作,如下:
$("#field_1_select_value").bind('change', function (e) {
if($("#field_1_select_value").val() == 1){
// Do stuff
} else {
// Do something else
}
});
我想检查select是否有其他值,因为如果你在select中选择了许多不同的选项,行为会是相同的,并且它们不一定是串联的,所以我不能说大于或小于我想指定你是否选择,例如,1,4,10或20 ......有些事情发生了。我尝试使用逗号基于我在其他地方找到的另一个答案,如下所示:
if($("#field_1_select_value").val() == 1, 4, 10, 20){
但这似乎不起作用。正如我所理解的那样,
充当多重选择器,并且在文档中它是有意义的但我没有发现它如何在像这样的if
语句场景中工作。我已经看到了很多类似的问题,但没有真正指出使用if
val
语句的用法。
感谢您的意见和建议。
答案 0 :(得分:12)
数组具有您可以使用的indexOf属性。只需确保将值从field_1_select_value
转换为数字,而不是您将以其他方式返回的字符串。
执行此操作的最快方法是使用一元+
运算符。
if([1, 4, 10, 20].indexOf(+$("#field_1_select_value").val()) >= 0){
答案 1 :(得分:8)
开关盒可能适合您的需求:
switch (parseInt($("#field_1_select_value").val(), 10)) {
case 1:
case 4:
case 10:
case 20:
// do stuff
break;
default:
// do something else
break;
}
答案 2 :(得分:1)
答案 3 :(得分:0)
也许你可以尝试这样的事情:
// this way it's easy to insert new values in case of possible
// changes in the future
var posNums = [1,2,3,4];
var val = $("#field_1_select_value").val()
if(posNumbs.indexOf(val) >= 0){
//some actions
}{
//other actions
}