按值检查复选框

时间:2013-04-08 20:29:55

标签: javascript jquery

我一直在使用此代码来获取所有已选中复选框的逗号分隔列表。

$(".hidFeedsIds").val($.map($(':checkbox[name=channel\[\]]:checked'), function (n, i) {
    return n.value;
}).join(','));

现在我需要做相反的事情,我有列表但需要检查值的所有复选框。

谁能告诉我怎么能这样做?

3 个答案:

答案 0 :(得分:7)

除了你的代码在语法上没有效果......

$('input:checkbox').filter(function() {
    return valuesArray.indexOf(this.value) > -1
}).prop('checked', true);

答案 1 :(得分:4)

另一种方式,补充@Matt的答案。

$.each(valuesArray, function (i, v) {

    // or use .prop() if you like, depending on jQuery version
    $("input:checkbox[value='" + v + "']").attr("checked", true);
});

答案 2 :(得分:1)

LIVE DEMO

如果您的元素值共享相同的ID,如:

<input type="checkbox" id="a" value="a" />
<input type="checkbox" id="b" value="b" />

比你能做的更多:

$('#'+ valuesArray.join(', #') ).prop('checked', true);

顺便说一下,你在原始剧本中缺少function。应该是:

var valuesArray = $('input:checkbox:checked').map(function(){
    return $(this).val();
}).get().join();