1

我有一系列复选框:

<input class="Spec" type="checkbox" value="1" />
<input class="Spec" type="checkbox" value="2" />
<input class="Spec" type="checkbox" value="5" /> 
<input class="Spec" type="checkbox" value="8" /> 
<input class="Spec" type="checkbox" value="10" />  
<input class="Spec" type="checkbox" value="30" />

有几百个(不要问)。

使用 jQuery,我可以启用和禁用复选框,class但我需要做的是启用/禁用出现的第二个和第五个复选框class="Spec"

有可能吗,会是孩子/父母等吗?

4

8 回答 8

2

试试喜欢

 $('.Spec').filter(':eq(1) , :eq(4)').prop('disabled', true);

eq(1)并且eq(4)会同时禁用第二个第五个复选框。或者单独你可以这样做

$('.Spec:eq(1)').prop('disabled', true);
$('.Spec:eq(4)').prop('disabled', true);  

也应该是这样的

$('.Spec').eq(1).prop('disabled', true);
$('.Spec').eq(4).prop('disabled', true);
于 2013-11-06T07:08:43.143 回答
1

您可以使用:eq()选择器(基于索引)执行此操作:

$('.Spec:eq(1)').prop('disabled', true);  // disable the second checkbox
$('.Spec:eq(4)').prop('disabled', true);  // disable the fifth checkbox
于 2013-11-06T07:09:27.473 回答
0

我认为最好的解决方案是当你设置 html 然后添加一个类来禁用复选框,比如

<input class="Spec" type="checkbox" value="1" />
<input class="Spec disclass" type="checkbox" value="2" />
<input class="Spec" type="checkbox" value="5" /> 
<input class="Spec" type="checkbox" value="8" /> 
<input class="Spec disclass" type="checkbox" value="10" />  
<input class="Spec" type="checkbox" value="30" />

然后在 Js

$(".disclass").attr("disabled","disabled");

或者如果您不想添加课程,您可以尝试

$('.Spec')
.filter(':eq(1), :eq(4)')
.attr('disabled','disabled');// by attr


 // or can try
 $('.Spec')
    .filter(':eq(1), :eq(4)')
    .prop('disabled',true);

参考attrpropfilter

于 2013-11-06T07:08:31.203 回答
0

使用 CSS3 nth-child 选择器。例如。第二:

$('.Spec>:nth-child(2)').attr("disabled","disabled");

第 5 个复选框类似

于 2013-11-06T07:09:51.390 回答
0
//use true to enable and false to disable
    var arrChk = $('.Spec');
    arrChk[1].checked = true;
    arrChk[4].checked = true;
于 2013-11-06T07:13:23.100 回答
0

试试这个;

$("#button").toggle(function(){
    $( "input:eq(4)" ).attr("checked",true).addClass("selected");
}, function(){
    $( "input:eq(4)" ).attr("checked",false).removeClass("selected");
});    

attr() 或 prop(),如果你有 jquery 1.9.1 => 你必须使用 prop()。

http://jsfiddle.net/mehmetakifalp/WyRfF/

于 2013-11-06T07:16:57.520 回答
0
You can use following code to disable specific checkbox

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
    $( document ).ready(function() {
        var len = $('.Spec').length;
        var count = 1;
        $( ".Spec" ).each(function() {
            if (count == 2 || count == 5) {
                $(this).attr('disabled', true);
            }
            count++;
        });
    });
</script>

You can use following code to enable specific checkbox

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
    $( document ).ready(function() {
        var len = $('.Spec').length;
        var count = 1;
        $( ".Spec" ).each(function() {
            if (count == 2 || count == 5) {
                $(this).removeAttr("disabled");
            }
            count++;
        });
    });
</script>
于 2013-11-06T07:24:01.560 回答
0

这样的事情应该做你想做的事:

$("input.Spec[value=2]").attr('checked', true);
$("input.Spec[value=10]").attr('checked', true);

请注意,这将选择所有值为 2 和 10 的复选框(如果您有多个具有相同值的复选框)

如果您不知道这些值或不希望从上面获取此值,那么另一种方法可能是为您的复选框自动生成 ID,如下所示:

<input id="c1" class="Spec" type="checkbox" value="1" />
<input id="c2" class="Spec" type="checkbox" value="2" />
<input id="c3" class="Spec" type="checkbox" value="5" /> 
<input id="c4" class="Spec" type="checkbox" value="8" /> 
<input id="c5" class="Spec" type="checkbox" value="10" />  
...

然后有这样的东西:

$("#c2").attr('checked', true);
$("#c5").attr('checked', true);

希望这会帮助你。

于 2013-11-06T07:24:37.477 回答