我有20个复选框.如果选中4个复选框,我需要禁用16个复选框.
我试着用这个jquery代码开始
$("input[type=checkbox][name=cate]:checked").each(
function()
{
}
);
Run Code Online (Sandbox Code Playgroud)
我需要的是,如果用户选择4个复选框,则应禁用所有其他复选框.
Rei*_*gel 60
$("input[type=checkbox][name=cate]").click(function() {
var bol = $("input[type=checkbox][name=cate]:checked").length >= 4;
$("input[type=checkbox][name=cate]").not(":checked").attr("disabled",bol);
});
Run Code Online (Sandbox Code Playgroud)
提供id为limit_checkbox的父元素将有助于加速选择,缓存查询可减少缓慢的DOM交互量.
使用"更改"而不是单击否则代码可以通过使用键盘来规避,也可以使用live而不是bind更快.
// Cache jQuery selection
var $checkboxes_to_limit = $("#limit_checkbox").find("input:checkbox[name=cate]");
$checkboxes_to_limit.live("change", function() {
if($checkboxes_to_limit.filter(":checked").length >= 4) {
$checkboxes_to_limit.not(":checked").attr("disabled","disabled");
}
else {
$checkboxes_to_limit.removeAttr("disabled");
}
});
Run Code Online (Sandbox Code Playgroud)