2012-08-03 24 views
1

HTML代码来检查/取消选中复选框:如何使用值查询

<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代码:

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

如何使用值查询

+0

你google了吗?! https://www.google.com.lb/search?sugexp=chrome,mod=1&sourceid=chrome&ie=UTF-8&q=check+uncheck+box+jquery+ – amd 2012-08-03 11:16:14

回答

2

设置为选中/取消复选框检查复选框元素的属性为truefalse,即

el.checked = false; 

如果你想用jQuery做到这一点,使用ATTR功能的的检查 attibute以及

+0

更好地使用'prop()'而不是'attr()'为'检查'。即使[jQuery文档](http://api.jquery.com/prop/)也这样说。 – 2012-08-03 11:51:59

+0

@TimDown感谢您的信息,还没有使用jQuery以外的一些非常小的应用程序 – 2012-08-03 12:18:25

0

使用道具或ATTR做到这一点。 像这样

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

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

Jquery API Prop()

您可以选中或取消选中元素之后

$(element).prop('checked',true); // check 
$(element).prop('checked',false); // uncheck 
1

汉斯是正确的, 虽然 el将可能是一个jQuery对象( .each方法在这种情况下返回jQuery对象。正如安东尼指出的那样,情况并非总是如此。) 但正如安东尼指出的那样,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的行为:)

+1

['.each()'](http://api.jquery.com/jQuery.each/)和['.each()'](http://api.jquery.com/each/)在jQuery中,但他们都没有将jQuery对象传递给函数**,除非你使用'$ .each( )'遍历一组jQuery对象。 – 2012-08-03 11:34:04

+0

@AnthonyGrist:这是一种情况,一个jQuery选择器返回一个jQuery对象数组,但你是对的,'$ .each'和'.each'有区别,我会编辑我的答案 – 2012-08-03 11:40:42

+0

不,一个jQuery选择器返回一个包含实际元素的单个数组式的jQuery对象。 – 2012-08-03 11:46:15