Как использовать jQuery для выбора определенных флажков - PullRequest
0 голосов
/ 24 августа 2011

Рассмотрим простую страницу .aspx.На этой странице есть разделы, и у каждого раздела есть заголовок с флажком.При выборе он выбирает другие флажки, которые находятся в этом разделе страницы.Думайте об этом как о «Выбрать все в этом разделе», а не «Выбрать все на странице».Я хотел бы сделать это с помощью jQuery, но не могу понять, как сохранить все флажки от выбранных в этом подразделе.

Ответы [ 4 ]

1 голос
/ 24 августа 2011

Установите флажки раздела, используя элемент html, который определяет каждый раздел как разделитель.

Например:

<div id="section1">
  <input type="checkbox" id="section1controller" />

   <input type="checkbox" id="section1checkbox1" />       
   <input type="checkbox" id="section1checkbox2" />
   <input type="checkbox" id="section1checkbox3" />
</div>

<script>
  $('#section1controller').bind('click', function() {      
    if($(this).is(':checked')) { 
      $('#section1controller').find('input[type="checkbox"]').attr('checked','checked');
    } 
    else {
      $('#section1controller').find('input[type="checkbox"]').removeAttr('checked','checked');
    }
  });
</script>
1 голос
/ 24 августа 2011

Лучший способ - добавить класс в каждый раздел, например section1, section2 и т. Д. Чем целевые все флажки в нем. Например:

$('.section1 input:checkbox').checked == true
1 голос
/ 24 августа 2011

попробуйте что-нибудь подобное

вы можете создать div-обертку для заголовка ur и sub_header следующим образом:

<div class="header">
    <input id="xx" type="checkbox" /> Header #1
    <div class="sub_header">
        <input class="cc"  type="checkbox" />
        <input  class="cc"  type="checkbox" />
        <input  class="cc"  type="checkbox" />
    </div>
<div>
<div class="header">
    <input type="checkbox" /> Header #2
    <div class="sub_header">
        <input class="cc"  type="checkbox" />
        <input  class="cc"  type="checkbox" />
        <input  class="cc"  type="checkbox" />
    </div>
<div>

Затем проверьте, установлен ли флажок заголовка, затем выберите sub_header в следующем дочернем элементе div, как показано ниже

$(document).ready(function(){
  $(".header input:checkbox").click(function(){
    if($(this).is(":checked")){
            $(this).parent("div.header").children("div.sub_header").find("input.cc").attr("checked","checked");
}else{
             $(this).parent("div.header").children("div.sub_header").find("input.cc").attr("checked",false);
     }
});

});

Я думаю, вы можете сократить селектор jquery ... проверить это

1 голос
/ 24 августа 2011

Поместите каждый раздел в div и div, который разделяет имя класса, или на каждом флажке укажите им имя класса для имени раздела.

<input type=checkbox class="Section1">

, затем в jquery

$("input:checkbox:checked.Section1") должен быть селектором для всех элементов с классом Section1

или

input:checkbox:not(:checked).Section1

вышеизложенное не проверено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...