2017-01-10 47 views
1

我有一些工作腳本,但我知道有一種方法可以用if語句清理它,但我永遠無法使它工作。如何檢查輸入值是否等於下列任何值然後選中複選框

我試圖找到一種方法來搜索值是否等於2,3或5.如果是,那麼選中複選框。

下面是腳本:

var num = 5; 
$('input:checkbox[value="' + num + '"]').attr('checked', true); 
var num = 2; 
$('input:checkbox[value="' + num + '"]').attr('checked', true); 
var num = 3; 
$('input:checkbox[value="' + num + '"]').attr('checked', true); 

HTML:

<div id="select"> 
<input type="checkbox" name="my_check[]" value="1"> 
<input type="checkbox" name="my_check[]" value="2"> 
<input type="checkbox" name="my_check[]" value="3"> 
<input type="checkbox" name="my_check[]" value="4"> 
<input type="checkbox" name="my_check[]" value="5"> 
</div> 

This fiddle shows it working

回答

2

您可以使用地圖多重價值。按單個數組中的值並使用arry上的映射來檢查值。

[5,2,3].map(function(num){ 
    $('input:checkbox[value="' + num + '"]').prop('checked', true); 
}) 

工作小提琴 https://jsfiddle.net/d393savL/1/

PS:更改了答案使用道具的感謝@Mike :)

+3

從[用於文檔的ATTR(http://api.jquery.com/attr):***檢索和更改DOM屬性,如'checked',' (''.prop()'](http://api.jquery.com/prop/)方法。*** –

0

遍歷所有輸入複選框的建議和檢查值屬性

$(function(){ 
    $('input[type="checkbox"]').each(function(index, item){ 
    switch($(item).attr('value')) { 
     case '2': 
     case '3': 
     case '5': $(item).prop('checked', true); 
     break; 

    } 

    }) 
}) 

JSFIDDLE

2

使用.forEach()

var values = [2, 3, 5]; 
values.forEach(function(value) { 
    $('input:checkbox[value="' + value + '"]').prop('checked', true); 
}); 

這將 「循環」 通過你的values變量,試圖檢查與匹配值的任何checkbox

+0

'forEach'絕對是一個更好的主意比使用'地圖'副作用。 –

+0

@MikeMcCaughan是什麼使得每個地圖比地圖更好?我以前從未使用過。 – cgrouge

+0

'map'意在取數組並將這些值「映射」到另一個數組,並返回具有這些不同值的數組。因此,如果您看到'map'沒有使用返回值,則可能無法正確使用。 'forEach'是爲了獲取一個數組並迭代它,而沒有返回值。在這種情況下,迭代是我們想要的,而不是映射,所以它更好。這只是我的看法,並且在較老的瀏覽器中缺少「forEach」支持。 –

0

與其他類似,但利用選擇器。您可以在一個字符串中包含多個選擇器,因此讓jQuery執行循環更容易。

$(function() { 
 
    $(':checkbox[value="2"],:checkbox[value="3"],:checkbox[value="5"]').prop('checked', true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="select"> 
 
<input type="checkbox" name="my_check[]" value="1"> 
 
<input type="checkbox" name="my_check[]" value="2"> 
 
<input type="checkbox" name="my_check[]" value="3"> 
 
<input type="checkbox" name="my_check[]" value="4"> 
 
<input type="checkbox" name="my_check[]" value="5"> 
 
</div>

相關問題