2013-12-20 136 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