我如何格式化“如果val 1或4或6或10”

时间:2014-11-05 16:42:25

标签: javascript jquery if-statement

我有一些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语句的用法。

感谢您的意见和建议。

4 个答案:

答案 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)

您还可以使用jQuerys inArray

if($.inArray(+$('#field_1_select_value').val(), [1, 4, 10, 20]) > -1)

Fiddle

答案 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
}