复选框与jquery的关联

时间:2013-03-06 09:42:47

标签: jquery jquery-ui

我的复选框无法正常关联。 我有一个带有4个选项卡的jquery UI选项卡。如果我在第一个选项卡中选中一个复选框,则必须停用最后两个选项卡。这很好。 但我与第一个选项卡和第二个选项卡的复选框有关联。因此,当我检查SC1时,必须检查以SC1开头的每个复选框。如果检查了SC1,那么在检查SC2之后,必须检查所有SC2选项卡,并且仍然是SC1的所有复选框。它不起作用,我希望你能找到解决方案。

$('#tabs-1').click(function() {
$("#ARtabs").tabs({disabled: [2,3]});


if ($('.SC1T').is(':checked')) 
        {
        $('.SC1').attr('checked' ,'checked');
     }
    else
    if ($('.SC2T').is(':checked'))
            {
                $('.SC2').attr('checked' ,'checked');
            }     
    else
    if ($('.SC3T').is(':checked'))
            {
                $('.SC3').attr('checked' ,'checked');
            }     
    else
    {
        $('.SC1').removeAttr('checked');
        $('.SC2').removeAttr('checked');
        $('.SC3').removeAttr('checked');
        $("#ARtabs").tabs("option", "disabled", []);
    }
});

以下是demonstration

中的问题 提前THX

1 个答案:

答案 0 :(得分:2)

问题在于else语句。如果您的某个条件为真,则不会检查以下条件。

$(function() {
    $( "#ARtabs" ).tabs({
       collapsible: true,
       fx: { opacity: 'toggle' }
    });
});

$('#tabs-1').click(function() {

   var oneIsChecked = false;
   if ($('.SC1T').is(':checked')){
       oneIsChecked = true;
       $('.SC1').attr('checked' ,'checked');
   }else{
       $('.SC1').removeAttr('checked');
   }

   if ($('.SC2T').is(':checked')){
        oneIsChecked = true;
        $('.SC2').attr('checked' ,'checked');
   }else{
       $('.SC2').removeAttr('checked');
   }     

    if ($('.SC3T').is(':checked')){
        oneIsChecked = true;
        $('.SC3').attr('checked' ,'checked');
    }else{
       $('.SC3').removeAttr('checked');
    }     


   if(oneIsChecked){ 
       $("#ARtabs").tabs({disabled: [2,3]});
   }else{
       $('.SC1').removeAttr('checked');
       $('.SC2').removeAttr('checked');
       $('.SC3').removeAttr('checked');
       $("#ARtabs").tabs("option", "disabled", []);
   } 
});