如何使用查询中的值来选中/取消选中复选框

时间:2012-08-03 11:14:06

标签: javascript jquery

HTML CODE:

<form id="myform">
 <input type='checkbox' name='foo[]' value='1'>
 <input type='checkbox' name='foo[]' checked='true' value='2' >
 <input type='checkbox' name='foo[]' value='3' >
 <input type='checkbox' name='foo[]' checked='true' value='4' >
</form>

JS CODE:

$('input[name=foo]:checked').each(function(i,el){
    if(clusterVal == 'ALL')
        {
            /* what do I have to do here? */
        }
    array.push($(el).val());
});

如何使用查询中的值

来选中/取消选中复选框

5 个答案:

答案 0 :(得分:3)

As of jQuery 1.6, the .prop() method provides a way to explicitly retrieve property values, while .attr() retrieves attributes.

尝试这个..但这只是演示如何检查和取消选中

DEMO

 $(function(){
        var el=$('input:checkbox[name="foo[]:checked"]');

        el.each(function()
          {
                         $(this).prop('checked', true);
          });
    });

答案 1 :(得分:2)

将复选框元素的已选中属性设置为 true false ,即

el.checked = false;

如果您想使用jquery,请使用 attr 功能以及已选中 attibute

答案 2 :(得分:1)

汉斯是对的,虽然el可能是一个jQuery对象(.each方法在这种情况下返回jQuery对象。正如Anthony指出的那样,情况并非总是如此。) 但正如安东尼向我指出的那样,el并不总是纯粹的dom对象。它有时可能是一个jQuery对象,因此checked属性不一定可用。处理这些案件的几种方法:

$(el).get(0).checked = false;
$(el).removeAttr('checked');//or $(el).attr('checked',false);

$(el).get(0).checked = true;
$(el).attr('checked','checked');

感谢安东尼指出我对$.each.each的行为的粗鄙:)

答案 3 :(得分:0)

使用prop或attr执行此操作。 像这样的东西

$(el).attr("checked", "checked");

$(el).prop("checked", true);

答案 4 :(得分:0)

Jquery API Prop()

您可以选中或取消选中

后面的元素
$(element).prop('checked',true); // check
$(element).prop('checked',false); // uncheck