限制复选框,但仅限于新选中的复选框

时间:2016-11-28 18:54:48

标签: javascript jquery checkbox

我有一些jquery允许我限制用户可以在页面上检查的复选框数量:

 $('input[type=checkbox]').on('change', function (e) {
    if ($('input[type=checkbox]:checked').length > 3) {
        $(this).prop('checked', false);
        alert("allowed only 3");
    }
});

但是,用户每天只能被限制为“x”号码。所以他们来到表格,提交他​​们的限制(3检查)。他们第二天回来了,我从昨天开始检查了3个但是设置为残疾人:

 checked="checked" disabled="disabled" disabled/>

有没有办法修改我的if语句来说“input [type = checkbox]:checked”但是如果禁用或者不是,如果class =“disabled”,那么这些不计入每日限制吗?

2 个答案:

答案 0 :(得分:2)

您可以使用jQuery not()方法,如下所示。

$('input[type=checkbox]').on('change', function (e) {
    if ($('input[type=checkbox]:checked').not(':disabled').length > 3) {
        $(this).prop('checked', false);
        alert("allowed only 3");
    }
});

答案 1 :(得分:2)

您可以使用:enabled

$('input[type=checkbox]').on('change', function (e) {
    if ($('input[type=checkbox]:enabled:checked').length > 3) {
        $(this).prop('checked', false);
        alert("allowed only 3");
    }
});