选中复选框,如果选中其他复选框

如果选中值为1的复选框,我希望自动检查带有值2的复选框。 两者都有相同的ID,所以我不能使用getElementById。

HTML:

1
2

我累了:

 var chk1 = $("input[type="checkbox"][value="1"]"); var chk2 = $("input[type="checkbox"][value="2"]"); if (chk1:checked) chk2.checked = true; 

您需要将HTML和jQuery更改为:

 var chk1 = $("input[type='checkbox'][value='1']"); var chk2 = $("input[type='checkbox'][value='2']"); chk1.on('change', function(){ chk2.prop('checked',this.checked); }); 
  1. id是唯一的,你应该使用class。

  2. chk1chk1选择器是错误的,使用' like above '正确连接它。

  3. 使用change()函数检测何时选中或取消选中第一个复选框,然后使用prop()更改第二个复选框的选中状态。

小提琴演示

您需要更改一个的ID。 W3C标准不允许这样做(因此类与ID相比)。 jQuery只会处理第一个ID,但大多数主流浏览器会将ID视为类似于类,因为他们知道开发人员搞砸了。

解:

 1
2

有了这个JS:

 var chk1 = $('#user_name'); var chk2 = $('#user_name2'); //check the other box chk1.on('click', function(){ if( chk1.is(':checked') ) { chk2.attr('checked', true); } else { chk2.attr('checked', false); } }); 

有关使用ID的原因的详细信息,请参阅: 为什么具有相同id属性的多个HTML元素是一件坏事?

错误可能来自这里"input[type="checkbox"]这里你的复选框没有引号,所以你查询input[type=][value=1]

将其更改为"input[type='checkbox'] (在双引号内使用单引号,但不需要引用复选框)

http://api.jquery.com/checked-selector/

Id应该是唯一的,以便为您的元素设置不同的ids ,顺便说一下,您必须使用.change()事件来实现您想要的。

尝试,

HTML:

 1
2

JS:

 var chk1 = $("input[type='checkbox'][value='1']"); var chk2 = $("input[type='checkbox'][value='2']"); chk1.change(function(){ chk2.prop('checked',this.checked); }); 

首先创建一个输入类型复选框:

   $('#select_all').click(function(event) { if(this.checked) { $(':checkbox').each(function() { this.checked = true; }); } });