我在页面上有多个表单,每个表单中都有30个左右的复选框(表单的数量因用户上传而异)。我需要在选中6个复选框时进行设置,其中未选中的复选框中的其余复选框被禁用。
我可以很简单地用一种形式来解决这个问题 - 比如:
$("input:checkbox").click(function() {
var cbk = $("input:checkbox:checked").length >= 6;
$("input:checkbox").not(":checked").attr("disabled",cbk);
});
但最终会禁用所有表单的复选框。一直试图找到不同的方法来解决这个问题,但没有太多的运气。任何和所有的帮助表示赞赏。感谢。
答案 0 :(得分:1)
请试试这个:
$("input:checkbox").click(function() {
var frm = $(this).closest("form").attr("id");//getting the id of nearest form
var cbk = $("#" + frm + " input:checkbox:checked").length >= 6;
$("#" + frm + " input:checkbox").not(":checked").attr("disabled",cbk);
});
逻辑是:找到单击该复选框所在的表单。并使用该表单作为过滤器。
HTH