2012-08-03 27 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