2014-11-05 42 views
3

我有一些jquery檢查表單select的值,然後執行某些操作。它按預期工作,具體如下:如何格式化「如果val 1或4或6或10」

$("#field_1_select_value").bind('change', function (e) { 
    if($("#field_1_select_value").val() == 1){ 

    // Do stuff 

    } else { 

    // Do something else 

    }   
}); 

我想檢查是否選擇了其它的值,因爲行爲將是相同的,如果你選擇了一些在選擇不同的選項,它們不一定所以我不能說大於或小於X.我想指定是否選擇,例如1,4,10或20 ...發生了一些事情。我嘗試使用逗號根據另一個答案,我發現其他地方如下所示:

if($("#field_1_select_value").val() == 1, 4, 10, 20){ 

但這似乎並沒有工作。 ,作爲一個多選擇器,據我所知,它在文檔中是有意義的,但我沒有找到很多關於如何在if這樣的語句場景中工作的信息。我見過很多類似的問題,但沒有真正指出使用if陳述與val

感謝您的意見和建議。

回答

12

數組有一個indexOf屬性,您可以使用。只要確保將field_1_select_value的值轉換爲數字,而不是返回的字符串。

執行此操作的最快方法是使用一元運算符+

if([1, 4, 10, 20].indexOf(+$("#field_1_select_value").val()) >= 0){ 
+1

這就像一個冠軍,謝謝你! – SpatialAnomaly 2014-11-05 17:08:10

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

@ sp00m - ** RADIX !!!!! ** – 2014-11-05 16:49:26

+1

@AdamRackis Radixed,thank you ^^ – sp00m 2014-11-05 16:49:48

1

您還可以使用jQuerys inArray

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

Fiddle

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 
} 
相關問題