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

How do I format "if val 1 or 4 or 6 or 10"

本文关键字:val 格式化 如果      更新时间:2023-09-26

我有一些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
}