一、在项目中遇到的CheckBox的全选和取消全选以及其他等解决方案如下:
// 对全选和取消全选的事件
$("#CheckAll").click(function () {
var checkedOfAll = $(this).prop("checked");
if (checkedOfAll == true) {
$("input[id*='check']").prop("checked", checkedOfAll);
} else {
$("input[id*='check']").prop("checked", checkedOfAll);
}
checkIds();
});
// 对所有子节点添加事件
$("td :checkbox").click(function () {
var checkedOfOne = $("td :checkbox:checked");
var checkedOfTwo = $("td :checkbox");
// 如果子节点全部没勾选,父节点也取消勾选
if (checkedOfOne.length < checkedOfTwo.length) {
$("#CheckAll").prop("checked", false);
}
// 如果子节点全部选中,父节点也勾选
else if (checkedOfOne.length == checkedOfTwo.length) {
$("#CheckAll").prop("checked", true);
}
});
//公共方法
function checkIds() {
var tmp = "";
$("input[id*='check']").each(function () {
if ($(this).attr("checked") == true) {
tmp += $(this).attr("rel") + ",";
} else {
}
});
if (tmp != '') tmp = tmp.substr(0, tmp.length - 1);
$("#ctl00_MainHolder_idstb").val(tmp);
}
二、下面的图片是自己参考的例子: