Javascript在选中一个复选框时选中所有具有相同ID的复选框

Javascript在选中一个复选框时选中所有具有相同ID的复选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我正在尝试制作一个简单的javascript,在选中其中一个复选框后,将所有具有相同ID的复选框标记为选中。问题是,当我选中复选框时,第一个状态复选框被取消选中,当我取消选中它时,它会再次取消选中具有相同ID的所有复选框,但之后,如果我再次尝试选中它,它将不起作用 以下是我目前的代码: $('input[id="check_01"]').on('click',function(){ $('input[id="check_01"]').attr('checked', $(this).is(

我正在尝试制作一个简单的javascript,在选中其中一个复选框后,将所有具有相同ID的复选框标记为选中。问题是,当我选中复选框时,第一个状态复选框被取消选中,当我取消选中它时,它会再次取消选中具有相同ID的所有复选框,但之后,如果我再次尝试选中它,它将不起作用

以下是我目前的代码:

$('input[id="check_01"]').on('click',function(){
    $('input[id="check_01"]').attr('checked', $(this).is(':checked'))
});
让我知道解决这个问题的逻辑是什么?在JS Fiddle中,它可以完美地工作,但在我的web表单上却不行

这是输入的代码:

<input type="checkbox"  class="aboveage6" id="check_01"  name="utilities[]" value="1 parking"  /> 12<br />
<input type="checkbox"  class="aboveage6" id="check_01"  name="utilities_02[]" value="1 parqueo"  /> 12 2<br />
12
12.2
$('input.check01')。在('click',function()上{
$('input.check01').prop('checked',$(this).is(':checked'));
});

12

12 2

正如@Mouser所说,ID是唯一的。相反,您可以为这些输入提供一个对该复选框集唯一的类。我不知道你是否在其他地方使用它,但你的“6岁以上”课程可能有用。然后在jQuery中,将
'input[id=“check_01”]
替换为
'input.overlage6'
。或者,您可以使用所需的任何类名替换上述第6页。

ID是唯一的,您应该更改它们。您可以选择所有复选框并添加
单击
事件处理程序,然后使用
^=
操作符查找以
检查
开头的所有ID,并使用
属性设置其选中的属性,这样功能将一直工作

编辑-属性与属性

属性反映复选框中当前的“checked”值,而checked属性包含HTML源代码中复选框的初始状态

$(文档).ready(函数(){
$('input[type=checkbox]')。在('click',function()上{
$('input[id^=check]').prop('checked',$(this).is(':checked'));
});
});

12

12 2
这不起作用。ID是唯一的。请为此使用数据集或类名。对于类,它的工作方式相同,第一次选中和未选中有效,第二次无效。正确。
prop
attr
之间存在差异。这导致这个脚本出现故障。但是,强烈建议在ID上使用唯一的ID,因此HTML5中的任何更改都不应通过使用数据集或类名来完成。当应用程序变得更大时,使用这样的ID将很容易出错。OP还要求检查/取消检查具有相同ID的元素。这是您的意见,您可以自己保存。您始终可以在分区或窗体中找到特定的复选框,然后执行与复选框相关的相同选择。类也很好,但如果应用程序变得更大,也可以成为探测器。第一部分是正确的,但你的答案仍然没有回答OP的问题。功能是按照要求的,我已经将attr更改为prop,因此它确实满足了需求。我将选择更改为相对于ID而不是类,因为OP希望在选中其中一个复选框后,将所有具有相同ID的复选框标记为选中。
是的,但您的复选框没有相同的ID