2013-05-17 58 views
0

禁用只複選框我要禁用所有checkboxes這是在同一個div當第一checkbox被選中,如果選中再次啓用。這是在同一個div,而不是所有

,其工作對我來說check here

$('.cdls_content_wrapper input:checkbox:first').click(function() { 
    alert('HI'); 
    $('.cdls_content_wrapper').find(':checkbox').slice(1).each(function() { 
     if ($('.cdls_content_wrapper input:checkbox:first').is(':checked')) { 
      $(this).attr("disabled", true); 
     } else { 
      $(this).attr("disabled", false); 
     } 
    }); 
}); 

但問題是,當我有另一個相同的格,然後單擊該分區第一checkbox它做都一樣。

我想讓我的功能更普遍的,而不是具體到只有一個格。

+0


只需粘貼嗎?也是爲什麼你使用複選框以'標籤=「」'當你可以寫在'檢查框標題',你也有很多未閉合的元素 – Epsil0neR

+0

我的第一個div複製到只檢查這一點。當然,所有其他div元素都有不同的ID,但我不能使用ID,因爲它們是從asp.net – rahularyansharma

+0

中的服務器控件自動生成的,但是您可以在asp.net中自定義該控件,對嗎? – Epsil0neR

回答

3

嘗試

$('.cdls_content_wrapper').find(':checkbox:first').click(function() { 
    $(this).closest('.cdls_content_wrapper').find(':checkbox').not(this).attr('disabled', this.checked) 
}); 

演示:Fiddle

+0

IN都檢查其禁用相同的複選框。 – rahularyansharma

+0

@rahularyansharma查看更新 –

+0

嘗試點擊第二個全部而不是第二個所有複選框選中。 – rahularyansharma

0

只需推動功能出了處理程序,如:

function DoWork(TheDiv) { 

    var IsFirstChecked; 

    TheDiv.find(':checkbox').each(function() { 

     if (typeof(IsFirstChecked) !== 'boolean') { 
       IsFirstChecked = $(this).prop('checked'); 
     } else { 
       $(this).prop('disabled', IsFirstChecked); 
     } 
    }); 
} 

然後從任何地方調用它:

$('.cdls_content_wrapper').find('input').click(function() { 
    DoWork($(this).closest('table')); 
}); 

$('.SomeOtherClass').find('input').click(function() { 
    DoWork($(this).closest('table')); 
}); 

這裏的工作jsFiddle

而且,按照jQuery的documentation,使用.prop()是一種更好的方式去比使用.attr()

-1

你必須在這兩個div的使用不同類的複選框

+0

這種建議的任何理由? – rahularyansharma

+0

因爲您正在使用類來完成此操作,並且您的所有複選框都具有相同的類 –

2

您可以添加一個classall複選框,這樣來做:

$('.cdls_content_wrapper input:checkbox.all').click(function(){ 
    if($(this).is(':checked')){ 
     $('input:checkbox',$(this).closest('tr').siblings()).attr("disabled", true); 
    }else{ 
     $('input:checkbox',$(this).closest('tr').siblings()).attr("disabled", false); 
    } 
}); 

樣品fiddle..

0

對不起隊友我釘就這一次!爲什麼你用相同的ID對第二個div的元素

$('.cdls_content_wrapper input:checkbox:first').click(function() { 
    alert('HI'); 
    $(this).parent().parent().parent().find(':checkbox').slice(1).each(function() { 
     if ($('.cdls_content_wrapper input:checkbox:first').is(':checked')) { 
      $(this).attr("disabled", true); 
     } else { 
      $(this).attr("disabled", false); 
     } 
    }); 
}); 
相關問題