我需要检查输入类型:在表格中检查所有tr,之后我需要为此提供事件。你能帮帮我吗??下面是我的代码
$('.view-all-check').click(function (event) {
if (this.checked) {
$('.message tr input').each(function () {
this.checked = true;
$(this).parent().parent().addClass('active');
});
} else {
$('.message tr input').each(function () {
this.checked = false;
$(this).parent().parent().removeClass('active');
});
}
});
"
答案 0 :(得分:1)
从您的代码中我认为您正在尝试将活动类添加/删除到tr
并选中/取消选中所有复选框,您的代码看起来很好,但您必须将其更改为:
$('.view-all-check').click(function (event) {
if (this.checked) {
$('.message tr input').each(function () {
$(this).prop('checked', true); // Check all checkboxes
$(this).closest('tr').addClass('active'); // Change here
});
} else {
$('.message tr input').each(function () {
$(this).prop('checked', false); // un-check all checkboxes
$(this).closest('tr').removeClass('active'); // Change here
});
}
});
对于反向流程,请为每个文本框指定唯一的类名,并使用:checked
获取已选中复选框的长度,并将其与checkbox
的{{1}}进行比较,以便它.chk
{1}}
您可以尝试此代码
(.chk).length == (.chk:checked).length
答案 1 :(得分:0)
你可以试试这个:
$('.view-all-check').change(function (event) {
if(this.checked){
$('.message tr input[type="checkbox"]').closest('tr').addClass('active');
}else{
$('.message tr input[type="checkbox"]').closest('tr').removeClass('active');
}
});
您可以使用click
元素上的change
事件代替$('.view-all-check')
事件。
根据您的评论,您可以尝试:
$('.message input[type="checkbox"]').change(function (event) {
var isChecked = $('.message input[type="checkbox"]:checked').length === $('.message input[type="checkbox"]').length;
if(isChecked){
$('.view-all-check').prop('checked', isChecked);
}
});