如何使用jquery检查当前表单中的所有复选框?

Chr*_*ris 6 forms checkbox jquery jquery-selectors

考虑这个简单的示例代码:

<form name="text" id="frm1" method="post">
  <input type="checkbox" name="name[]" value="1000"> Chk1<br>
  <input type="checkbox" name="name[]" value="1001"> Chk2<br>
  <input type="checkbox" name="name[]" value="1002"> Chk3<br>
  <input type="checkbox" name="name[]" value="1003"> Chk4<br>
  <input type="checkbox" id="select_all"/> Select All<br>  
</form>

<form name="text" id="frm2" method="post">
  <input type="checkbox" name="name[]" value="4000"> Chk1<br>
  <input type="checkbox" name="name[]" value="4001"> Chk2<br>
  <input type="checkbox" name="name[]" value="4002"> Chk3<br>
  <input type="checkbox" name="name[]" value="4003"> Chk4<br>
  <input type="checkbox" id="select_all"/> Select All<br>  
Run Code Online (Sandbox Code Playgroud)

我试图让Select All在每个表单中工作(表单是在我的生产代码中动态生成的,并且具有不同的,不同的名称)

我正在使用这个jquery,但select_all仅适用于第一个表单; 它对第一个下面的表格没有影响.

$('#select_all').change(function() {
  var checkboxes = $(this).closest('form').find(':checkbox');
  if($(this).is(':checked')) {
      checkboxes.attr('checked', 'checked');
  } else {
      checkboxes.removeAttr('checked');
  }
});
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何在表格ID中包含的任何:复选框中选中所有复选框.

有人能指出我正确的方向吗?

非常感谢

Dom*_*nic 8

您有多个具有相同ID的元素,这是无效的HTML并导致您看到的问题.更改id="select_all"class="select_all",和$('#select_all')$('.select_all')的,你应该是好的.