我必须在一个组中选择多个复选框,如果我必须按用户提供类似[“1”,“3”,“8”]的列表,则有10个复选框,其值属性设置为0到9必须选择值为1,3和8的复选框。如何完成?请回复!!
答案 0 :(得分: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;
});
或者,使用filter()
:
var arr = ['1','3','8'];
$('input[type=checkbox]').filter(function(){
return $.inArray(this.value, arr) > -1;
}).prop('checked',true);
但是,在设置属性之前,首先取消选中任何已经检查过的复选框可能是值得的:
var arr = ['1','3','8'];
$('input[type=checkbox]').prop('checked',false).filter(function(){
return $.inArray(this.value, arr) > -1;
}).prop('checked',true);
最后,因为value
的{{1}}始终是一个字符串,而JavaScript中的数字不必引用,以允许数组中不带引号的数字(以防止遗忘,如果没有别的):
input
参考文献:
答案 1 :(得分: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>
答案 2 :(得分:1)
这是一种方法 - 给你的复选框一个公共类,即“myCheckbox”。
使用jQuery迭代所有带有“myCheckbox”类的复选框,并将它们的值与用户提供的列表进行比较。如果匹配,请选中复选框。
伪jQuery代码:
$('.myCheckbox').each(function() {
// you would search the array here
if ($(this).value == "1") {
$(this).check();
}
});
答案 3 :(得分:0)
你可以试试这个 -
var arr = ["1","3","8"];
$(':checkbox').each(function(){
if($.inArray(this.value,arr) > -1){
$(this).prop('checked',true);
}
})
答案 4 :(得分:0)
这可以解决您的问题:
var setArr = ["1","3","8"];
$('.checkbox').each(function(i, j){
if(jQuery.inArray($(j).val(), setArr)!= -1){
$(j).attr('checked', 'checked');
}
});