我有一些jquery,它检查表单选择的值,然后执行一些操作。它按预期工作,如下所示:
$("#field_1_select_value").bind('change', function (e) {
if($("#field_1_select_value").val() == 1){
// Do stuff
} else {
// Do something else
}
});
我想检查select是否有其他值,因为如果你在select中选择了许多不同的选项,行为会是相同的,而且它们不一定是串联的,所以我不能说大于或小于X。我想指定你是选择1、4、10还是20……会发生什么事。我试着根据我在其他地方找到的另一个答案使用逗号,如下所示:
if($("#field_1_select_value").val() == 1, 4, 10, 20){
但这似乎并不奏效。据我所知,,
充当了一个多选择器,在文档中它是有意义的,但我没有发现它如何在这样的if
语句场景中工作。我看到了很多类似的问题,但没有一个真正指出if
语句与val
的用法。
感谢您的意见和建议。
数组有一个可以使用的indexOf属性。只需确保将值从field_1_select_value
转换为数字,而不是返回的字符串。
最快的方法是使用一元+
运算符。
if([1, 4, 10, 20].indexOf(+$("#field_1_select_value").val()) >= 0){
开关盒可能适合您的需求:
switch (parseInt($("#field_1_select_value").val(), 10)) {
case 1:
case 4:
case 10:
case 20:
// do stuff
break;
default:
// do something else
break;
}
您也可以在Array:中使用jQuerys
if($.inArray(+$('#field_1_select_value').val(), [1, 4, 10, 20]) > -1)
Fiddle
也许你可以试试这样的东西:
// 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
}