检查下面列表的Jquery复选框

时间:2016-09-21 13:37:19

标签: jquery jquery-ui jquery-selectors jquery-select2

我想构建一个jquery函数或onclick事件,如果单击中间列表并取消选中其列表上方的所有复选框,则会检查所有复选框。

为了进一步解释,例子我有5个复选框:

Checkbox 1
Checkbox 2
Checkbox 3
Checkbox 4
Checkbox 5

第一种情况:

如果我点击Checkbox 3,则会检查下面的所有复选框,即Checkbox 4&复选框5。

第二种情况:

如果我取消选中Checkbox 3,则所有Checkbox 3,4和5也将取消选中。

4 个答案:

答案 0 :(得分:2)

您可以使用更改事件,以便每次复选框更改其值时,您可以为其余元素设置此新值(已选中,未选中):



//
// When a checkbox changes its value do....
//

$(':checkbox').on('change', function(e) {
  //
  // get current value: checked/unchecked
  //
  var chk = this.checked;
  
  //
  // get all next checkbox elements and set their values
  // to the current value: checked/unchecked
  //
  // $(this).nextAll(':checkbox').prop('checked', chk);

   // UPDATE
  //
  // get all next checkbox elements and set their values
  // to the current value: checked/unchecked
  //
  if (chk == true) {
    $(this).nextAll(':checkbox').prop('checked', chk);
  } else {
    $(this).siblings(':checkbox').prop('checked', chk);
  }
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form>
    <input type="checkbox" name="vehicle" value="1">1<br>
    <input type="checkbox" name="vehicle" value="2">2<br>
    <input type="checkbox" name="vehicle" value="3">3<br>
    <input type="checkbox" name="vehicle" value="4">4<br>
    <input type="checkbox" name="vehicle" value="5">5<br>
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

好吧,您可以使用JS创建一个包含所有复选框的列表,并通过其中任何一个的单击事件,您将迭代此列表并逐个检查,设置属性“checked = true;”

希望它有所帮助! :)

答案 2 :(得分:0)

<ul>
    <li><input type="checkbox" id="select_all"/> Selecct All</li>
    <li><input class="checkbox" id="1" type="checkbox" name="check[]"> This is Item 1</li>
    <li><input class="checkbox" id="2" type="checkbox" name="check[]"> This is Item 2</li>
    <li><input class="checkbox" id="3" type="checkbox" name="check[]"> This is Item 3</li>
    <li><input class="checkbox" id="4" type="checkbox" name="check[]"> This is Item 4</li>
    <li><input class="checkbox" id="5" type="checkbox" name="check[]"> This is Item 5</li>
    <li><input class="checkbox" id="6" type="checkbox" name="check[]"> This is Item 6</li>
</ul>

JQuery的:

// $(this).attr('id')获取当前ID //$(":checkbox").length获取所有复选框

 $('.checkbox').change(function(){ //".checkbox" change

       for(int i=$(this).attr('id');i<= $(":checkbox").length;i++)
       {
           if(this.checked == false){
              $("#" + i).prop('checked', true);
           }
           else{
              $("#" + i).prop('checked', false);
           }
       }  
    });

答案 3 :(得分:0)

我也想分享我的答案。这是对上述答案的更新和修改:

Excel.Application objexcel = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook xlBook = objexcel.Workbooks.Open(filename);
Excel.Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets.get_Item(1);
range = xlSheet.UsedRange;
Excel.Range last =xlSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing);
range.get_Range("A2", last).Delete(XlDeleteShiftDirection.xlShiftUp);