0

我的复选框无法正常关联。我有一个带有 4 个选项卡的 jquery UI 选项卡。如果我在我的第一个选项卡中签入复选框,则必须停用最后 2 个选项卡。这很好用。但是我从第一个选项卡到第二个选项卡与我的复选框有关联。因此,当我检查 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", []);
    }
});

这是我在演示中的问题

提前 THX

4

1 回答 1

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", []);
   } 
});
于 2013-03-06T09:50:03.953 回答