2013-03-06 38 views
0

我的複選框在關聯中無法正常工作。 我有一個包含4個選項卡的jquery UI選項卡。如果我在第一個標籤中選中一個複選框,最後2個標籤必須停用。這工作正常。 但我有一個與我的複選框從第一個與第二個選項卡的關聯。所以當我檢查SC1時,必須檢查每一個以SC1開頭的複選框。如果SC1被檢查,並且在檢查SC2之後,則必須檢查所有的SC2標籤,並且仍然是SC1的所有複選框。它不起作用,我希望你能找到解決方案。與jquery的複選框關聯

$('#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問題提前

回答

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", []); 
    } 
}); 
+0

的方法是有點不同,但或多或​​少相同的概念:http://jsfiddle.net/axelmichel/TqJqH/1/ – 2013-03-06 09:54:04

+0

完美。非常感謝你!!! – achillix 2013-03-06 09:59:02