2013-07-09 137 views
0

我必須在一個組中選擇多個複選框,現在有10個複選框的value屬性設置爲0到9,如果我必須提供一個像[「1」,「3」 ,「8」],我必須選擇值爲1,3和8的複選框。如何實現?請回復 !!使用jQuery在一個組中選擇多個複選框

+0

你想找到用戶進行了檢查其中的複選框,或者你必須根據你從什麼地方得到的陣列檢查特定複選框? –

回答

1

例如,對於價值8:

<input type="checkbox" class="chk" name="myGroup[]" value="7" /> 
<input type="checkbox" class="chk" name="myGroup[]" value="8" /> 

<script> 
    $(".chk[value='8']").prop("checked", true); 
</script> 
0

你可以試試這個 -

var arr = ["1","3","8"]; 
$(':checkbox').each(function(){ 
    if($.inArray(this.value,arr) > -1){ 
    $(this).prop('checked',true); 
    } 
}) 
1

這是做這件事 - 給你的複選框一個通用類,即 「myCheckbox」 。

使用jQuery遍歷所有與「myCheckbox」類相關的複選框,並將它們的值與用戶提供的列表進行比較。如果有匹配,請選中複選框。

僞jQuery代碼:

$('.myCheckbox').each(function() { 
    // you would search the array here 
    if ($(this).value == "1") { 
    $(this).check(); 
    } 
}); 
2
var arr = ['1','3','8']; 
/* find all the checkbox input elements. 
    set the 'checked' property */ 
$('input[type=checkbox]').prop('checked', function(){ 
    // return true if the value is in the array, false if not 
    return $.inArray(this.value, arr) > -1; 
}); 

JS Fiddle demo

或者,使用filter()

var arr = ['1','3','8']; 

$('input[type=checkbox]').filter(function(){ 
    return $.inArray(this.value, arr) > -1; 
}).prop('checked',true); 

JS Fiddle demo

var arr = ['1','3','8']; 

$('input[type=checkbox]').prop('checked',false).filter(function(){ 
    return $.inArray(this.value, arr) > -1; 
}).prop('checked',true); 

JS Fiddle demo

您設置屬性之前這可能是值得,但是,第一取消選中任何已選中的複選框。

最後,因爲inputvalue始終是一個字符串,而在JavaScript中的數字沒有被引用,以允許陣列在不帶引號的數字(要警惕健忘,如果不出意外):

var arr = ['1',3,'8']; 

$('input[type=checkbox]').prop('checked',false).filter(function(){ 
    return $.inArray(this.value, arr.toString()) > -1; 
}).prop('checked',true); 

JS Fiddle demo

參考文獻:

0

這應該可以解決您的問題:

var setArr = ["1","3","8"]; 

$('.checkbox').each(function(i, j){ 
if(jQuery.inArray($(j).val(), setArr)!= -1){ 

$(j).attr('checked', 'checked'); 
} 

}); 

FIDDLE

相關問題