2013-03-20 4 views
0

У меня есть 5 флажков. 4 из них должны показать/скрыть в зависимости от того, проверен ли 5-й/непроверенный. Я пытаюсь сделать это с помощью JQuery, но по какой-то причине я не совсем понимаю. Я нажимаю разделы кода, которые правильно проверяют свойство checked/unchecked, просто не получая правильный код show/hide. Я попробовал это, используя класс CSS для флажков, которые мне нужно переключить. Вот JQuery и .aspx кодShow/Hide on checkbox checked/unchecked

$(function() { 
     $('#<%=chkFrench.ClientID %>').unbind('click'); 

     $('#<%=chkFrench.ClientID %>').click(function() { 

      enable_cb(); 
      $(".EnhancedFrench").click(enable_cb); 
     }); 
    }); 

    function enable_cb() { 
     if (this.checked) { 
      alert("show"); 
      $('.EnhancedFrench').show(); 
     } else { 
     alert("hide"); 
      $('.EnhancedFrench').hide(); 
     } 
    } 

    <table> 
    <tr> 
    <td>Display Live (Fr):</td> 
    <td><asp:CheckBox runat="server" ID="chkFrench" CssClass="EnhancedFrench" />/td> 
    </tr> 
    <tr> 
    <td>French1</td> 
    <td><asp:CheckBox runat="server" ID="CheckBox1" CssClass="EnhancedFrench" /></td> 
    </tr> 
    <tr> 
    <td>French2</td> 
    <td><asp:CheckBox runat="server" ID="CheckBox2" CssClass="EnhancedFrench" /></td> 
    <tr> 
    <tr> 
    <td>French3</td> 
    <td><asp:CheckBox runat="server" ID="CheckBox3" CssClass="EnhancedFrench" /></td> 
    </tr> 
    <tr> 
    <td>French4</td> 
    <td><asp:CheckBox runat="server" ID="CheckBox4" CssClass="EnhancedFrench" /></td> 
    </tr> 
</table> 
+0

вы не передавая объект при вызове enable_cb() –

+0

@MarkHighfield следует, что правило применяется на каждом щелкнули флажок и скрыть остальные или только 'CheckBox4 '? – 2013-03-20 16:19:40

+0

в основном, если chkFrench проверен, остальные 4 должны быть видны, иначе остальные 4 не должны быть видны –

ответ

0

Я не проверить его, но он должен работать

$(function() { 
    $('#<%=chkFrench.ClientID %>').click(function(){ 
    if($(this).is(':checked')){ 
    $('.EnhancedFrench').show(); 

}else{ 
    $('.EnhancedFrench').hide(); 
} 
    }); 

});

0

Я провел быстрый образец. Для предоставленного кода вы можете попробовать использовать что-то вроде ниже.

Это должно скрыть все галочки, если последний установлен флажок

<script type="text/javascript"> 

    $(function() { 
     $('[id$="chkFrench"]').bind('change', function() { enable_cb(); }); 
    }); 

    function enable_cb() { 
     if ($('[id$="chkFrench"]').is(':checked')) { 
      $('span.EnhancedFrench:gt(0)').hide(); 
     } 
     else { 
      $('span.EnhancedFrench:gt(0)').show(); 
     } 
    } 

</script> 
+0

извините, я не очень хорошо сформулировал свой вопрос. Мне нужно, чтобы остальные, чтобы показать/скрыть с помощью chkFrench флажок установлен/не отмечен –

+0

, я обновил ответ. Вы можете захотеть изменить вызовы вызова show и hide по мере необходимости – Dinesh

0

Я хотел бы предложить вам держать флажков в контейнер и использовать этот контейнер, чтобы показать, скрыть.

0

Вы также можете сделать это следующим образом:

$('tr:nth-child(5)').find('input[type=checkbox]').on('change',function(){ 
    $(this).parent('td').parent('tr').siblings().fadeToggle(); 
});