【问题标题】:Disable all unchecked checkboxes of a class in jquery禁用jQuery中类的所有未选中复选框
【发布时间】:2011-07-18 05:40:09
【问题描述】:

我想在检查该类中的一个复选框时禁用类的所有未选中的复选框,以便我尝试了这个

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);

尽管我使用此选择器获得了正确的长度,但此代码不会禁用任何复选框?

【问题讨论】:

  • 您的 if 条件未关闭..检查是否是拼写错误或您的解决方案。
  • 是否有理由使用大型 js 库重新创建一组单选按钮?
  • @sinetheta 。我的第一个解决方案也是这个,但是在单选按钮中,一旦您选择了其中一个,您就无法在不刷新或单击重置按钮的情况下取消选中它们,但是对许多不同类的组有严格的要求而不是给一个重置按钮,这也是我必须这样做的原因

标签: jquery class checkbox


【解决方案1】:

试试这个:

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

JSFiddle

【讨论】:

    【解决方案2】:

    这个主题已经是beaten to death。共识是使用带有某种“无”选项的单选按钮。这样,您就可以避免将新功能编码到用户持有某些期望的控件中。

    【讨论】:

    • 虽然接受的答案在技术上是正确的,但这确实是最好的答案。
    • 在开始使用复选框在项目列表之间进行选择时,我在考虑这一点时只能选择 1 个。谢谢你提醒我RADIO 选项!哈哈哈亲亲
    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    相关资源
    最近更新 更多