我有一个动态预订页面,用户可以选择 x 数量的项目用于课程中的人员列表。
一个例子:每个人的课程可能列出 3 个复选框,但限制为 2。当达到 2 时,该人的剩余 1 个复选框被禁用。
我目前拥有的解决方案在 Firefox 和 chrome 中完美运行,但在 Internet Explorer 中却不行。
解释我的代码的原因:
因为person和course项是动态的,为了以后在php中处理选择,每个checkbox都有一个动态的名字。
如果每个项目都有一个 id,每个人都有一个 id,则复选框名称基于 [userid_itemid]
当 3 个用户在页面上为用户 1-(1_1)、(1_2)、(1_3)
为用户 2-(2_1)、(2_2)进行选择时,复选框名称将遵循类似 3 个复选框的模式, (2_3)
用于用户 3-(3_1)、(3_2)、(3_3)
这是使复选框能够在 Firefox 和 chrome 中正确禁用的代码:
$(document).ready(function(){
$("input:checkbox").click(function() {
var chktest="input\\["+$(this).attr('id');
var bol = $("input[name^="+chktest+"_]:checked").length >= 2;
$("input[name^="+chktest+"_]").not(":checked").attr("disabled",bol);
});
});
但是 Internet Explorer(绝对是版本 8)不限制任何形状或形式的复选框。
我上面的代码是基于此:
限制复选框数量 ANSWER 19 显示了一个工作演示。
它可以在此处提供的演示中跨浏览器工作,但由于我的数据是动态的,我的代码更复杂,我认为这导致了这个问题。