我制作了这个简单的代码来检查checkboxes
gridview
function chkFun() {
if ($("#chkSelectAll").is(':checked')) {
$("#grdSearchResults tr").each(function () {
debugger
var checkBox = $(this).find("input[id*='chkSelected']");
$(checkBox).attr("checked", true);
});
}
else {
$("#grdSearchResults tr").each(function () {
debugger
var checkBox = $(this).find("input[id*='chkSelected']");
$(checkBox).attr("checked", false);
});
}
}
chkFun
会在chkAll
checkbox
OnClicking
调用..并且第一次正常工作[选择&取消选择] ..之后它根本不起作用,我不知道为什么。
我尝试调试它,就像你在代码中看到的那样,它在任何地方都是正确的......但这行$(checkBox).attr("checked", false);
在第一次之后没有做任何事情
答案 0 :(得分:4)
使用.prop()
代替attr()
function chkFun() {
if ($("#chkSelectAll").is(':checked')) {
$("#grdSearchResults tr").find("input[id*='chkSelected']").prop('checked', true);
} else {
$("#grdSearchResults tr").find("input[id*='chkSelected']").prop('checked', false);
}
}
此外,您不需要使用.each()
,您可以选择一行
或者你可以将函数绑定到chkSelectAll
并使用评论中建议的Satpal代码来缩短代码
$('#chkSelectAll').on('change', function () {
$("#grdSearchResults tr").find("input[id*='chkSelected']").prop('checked', this.checked)
});