选中复选框,如果选中其他复选框
如果选中值为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); });
-
id
是唯一的,你应该使用class。 -
chk1
和chk1
选择器是错误的,使用'
like above'
正确连接它。 -
使用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']
(在双引号内使用单引号,但不需要引用复选框)
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; }); } });