如何使用jquery检查当前表单中的所有复选框?
考虑这个简单的示例代码:
<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>
我试图让 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');
}
});
我不知道如何检查表单 ID 中包含的任何 :checkbox 中的所有复选框。
有人能指出我正确的方向吗?
非常感谢
Consider this simple example code:
<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>
I'm trying to get Select All to work in each form (forms are dynamically generated in my production code and have different, varying names)
I'm using this jquery but select_all only works for only the first form; it has not affect on forms below the first.
$('#select_all').change(function() {
var checkboxes = $(this).closest('form').find(':checkbox');
if($(this).is(':checked')) {
checkboxes.attr('checked', 'checked');
} else {
checkboxes.removeAttr('checked');
}
});
I can't figure out how to Check All checkboxes in any :checkbox contained within the form ID.
Can someone point me in the right direction?
Many thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您有多个具有相同 ID 的元素,这是无效的 HTML,并导致了您所看到的问题。将
id="select_all"
更改为class="select_all"
,将$('#select_all')
更改为$('. select_all')
,你应该没问题。You have multiple elements with the same ID, which is invalid HTML and is causing the problem you're seeing. Change
id="select_all"
toclass="select_all"
, and$('#select_all')
to$('.select_all')
, and you should be good.您有两个 id 为
select_all
的元素;这是不允许的。将其更改为一个类并尝试以下操作:You have two elements with id
select_all
; that's not allowed. Change that to a class and try this:ID 是唯一的。你有两个。如果您想要多个元素,请使用
class="select_all"
和$('.select_all')
IDs are unique. You have two. If you want multiple elements, use
class="select_all"
and$('.select_all')
不过,您只需要一项 ID 为
select_all
的项目即可实现此功能。如果您可以更改为select_all
类,那么只需将#
替换为.
就可以了However, you will need only one item with id
select_all
for this to work. If you can change to a class ofselect_all
then just replace the#
with a.
and you're good to go试试这个:
Try this:
您不能拥有两个具有相同 ID 的项目。
示例
html:
JS:
you can not have two items with the same ID.
example
html:
JS: