jQuery禁用类上的复选框

时间:2013-11-27 23:01:57

标签: jquery class checkbox

我在$( document ).ready(function()内有以下代码:

$('.Spec').prop('disabled', !$('.Spec').is(':checked'));

我要做的是在页面加载后,禁用未检查的类Spec的任何复选框。

上述任何原因无效?

4 个答案:

答案 0 :(得分:5)

首先,你正在为你的布尔条件做一个非常糟糕的选择器机制;怎么知道Spec类中的特定复选框是你需要评估的那个?

我可能会在这些方面提出更多建议:

$('.Spec').each(function() {
    if(!$(this).prop('checked')) {
        $(this).prop('disabled', true);
    }
});

答案 1 :(得分:3)

如果当前检查了该类的任何复选框,则

!$('.Spec').is(':checked')将返回false,因此必须取消选中所有复选框。

听起来你正试图在每个复选框上单独执行此操作,例如:

$('.Spec').prop('disabled', function() {
     return !this.checked;
});

答案 2 :(得分:2)

然而,不知道这应该有效。

$('.spec').each(function() {
    if(!$(this).is(':checked')) {
        $(this).prop('disabled', true);
    }
});

答案 3 :(得分:1)

你可以试试这个:

var _checked;
$('.Spec').each(function() {
    _checked = ($(this).is(':checked')) ? false : true;
    $(this).prop('disabled', _checked);
});

查看更新后的jsfiddle