2013-12-20 145 views
1

我有一個checkbok爲全選名單沒有得到選擇

選擇全部

<input class="all-select" type="checkbox" value="" name=""> 

我也有朋友有一個複選框列表,每一個動態填充。

<ul> 
    <li><span><img src="img.src" ></span><strong>Name</strong> 
     <br />Email 
     <input name="" type="checkbox" value="" class="chk-box"> 
    </li>.....</ul> 

當我點擊全選複選框,然後我的列表中所有的複選框都應該得到選擇,其中的JavaScript代碼如下:

$("#slide_top_pop").on("click", ".all-select", function (event) { 
    if ($(this).is(':checked')) { 
     $('input.chk-box').attr('checked', true); 
    } else { 
     $('input.chk-box').attr('checked', false); 
    } 
}); 

現在的問題是這樣的,當我第一次選擇全選複選框,然後列表獲取選中,但是當我取消選中它並再次檢查,然後列表未選中,當我試圖在Mozilla上驗證它是什麼列表的檢查屬性(屬性),然後我得到這個:

<input class="chk-box" type="checkbox" value="" name="" checked="checked"> 

其中說,複選框被選中,但我不能看到列表中選定的勾號。 我不明白是什麼問題。 任何解決方案,非常感謝。

+0

您是否使用自定義checbox(就像它使用圖像默認複選框的頂部)? –

回答

1

使用.prop(),而不是像.attr()

$("#slide_top_pop").on("click", ".all-select", function (e) { 
    $('input.chk-box').prop('checked', this.checked); 
}); 
+0

雖然這很重要'.attr('checked',true)'將檢查複選框:http://jsfiddle.net/ZhPZC/。 – VisioN