当有人点击第一个 input:checkbox
时,我希望我的代码选中所有复选框,但我的代码无法正常工作:
示例: http://jsfiddle.net/cQYVE/
$('.table_show tr input:first').live('click',function(){
var isChecked = $(this).prop('checked');
$(".table_show tr input[name=checked[]]").each(function(){
if (!$(this).prop('checked') == isChecked) {
$(this).parent().click();
}
});
});
问题的原因是什么?
最佳答案
您的代码的问题是您没有正确引用名称选择器: 改变
$(".table_show tr input[name=checked[]]")
到
$(".table_show tr input[name='checked[]']")
见: http://jsfiddle.net/cQYVE/5/
另外,您的用户体验可能会更好。通常当用户手动选中所有复选框时,checkall 复选框应该变为选中状态,而当用户取消选中一个复选框以便“全部”不被选中时,checkall 复选框应该变为未选中
编辑: 第二个问题的答案是你必须维护一个复选框总数的计数,当这个数字被选中时,checkall 复选框必须被选中,否则它必须被取消选中。每次用户手动选中复选框时执行此检查。抱歉,我现在没有时间提供该代码。
关于javascript - 选中所有复选框有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7148705/