2011-07-18 51 views
3

我想禁用类的所有未选中复选框当这个类的一个复选框被选中,所以我想这禁用jQuery的类的所有选中的复选框

if ((($('input[type=checkbox]:checked.classname)).length)==1) { 

    $('.classname').not(':checked').each(function(){ 
         $(this).attr('disabled','disabled'); 
         }); 

,我也尝试过这一

$("input[type=checkbox]."+aclass).not(':checked').attr('disabled',true); 

这段代码并没有禁用任何复选框,虽然我正在使用这个选择器获取长度吗?

+0

如果您的条件未关闭,请检查是否为错字或您的解决方案。 – Vivek

+0

是否有使用大型js库重新创建一组单选按钮的原因? – Sinetheta

+0

@sinetheta。我的第一个解决方案也是这样,但是在单选按钮中,一旦你选择了其中的一个,你不能不刷新它们而没有刷新或者单击重置按钮,但是对于许多不同类的组有严格的要求,而不是给出重置按钮也就是这就是为什么我不得不去这 – khagesh

回答

9

试试这个:

$('.test').change(function(){ 
    if($('input.test').filter(':checked').length == 1) 
     $('input.test:not(:checked)').attr('disabled', 'disabled'); 
    else 
     $('input.test').removeAttr('disabled'); 
});​ 

JSFiddle

+0

谢谢你的工作:) – khagesh

5

这个课题已进行过beaten to death。共识是使用单选按钮和某种“无”选项。通过这种方式,您可以避免将新功能编入用户持有某些期望的控件中。

+1

虽然接受的答案在技术上是正确的,这真的是最好的答案。 –

+0

我在使用复选框的时候反思了这一点,当只有1个选项可以选择时,在一列项目之间进行选择....感谢您提醒我“RADIO”选项!亲爱的 –

相关问题