允许两个输入复选框在jquery中表现相同
allow the two input checkbox behave the same with jquery
我有两个输入框:
<input type="checkbox" checked='true' />
<input type="checkbox" checked='true' />
尝试使用jQuery来允许两个输入行为相同。如果选中第一个复选框,则选中第二个复选框。如果第1项未选中,则第2项未选中。反之亦然。
代码:
$('input:checkbox').live('change', function() {
$('input:checkbox').siblings().prop('checked',$(this).is(":checked"));
});
调用。live()而不是。on(),因为我只能使用jQuery 1.6.4
这个工作,但如果我扭曲这些输入标签到两个形式,它将不再工作。为什么?我该如何解决这个问题?
<form>
<input type="checkbox" checked='true'/>
</form>
<form>
<input type="checkbox" checked='true'/>
</form>
在用form
元素包装input
元素后,输入不再是兄弟元素。您可以在父窗体上使用.siblings()
,然后将input:checkbox
放置在其中:
$('input:checkbox').live('change', function() {
$(this)
.parent()
.siblings('form')
.find('input:checkbox')
.prop('checked', $(this).is(":checked"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<form>
<input type="checkbox" class="example" checked='true' id="1" />
</form>
<form>
<input type="checkbox" class="example" checked='true' id="2" />
</form>
在jQuery中添加兄弟元素。所以应该是:
$('input:checkbox').prop('checked',$(this).is(":checked"));
当你在DOM中把复选框元素分开并嵌套到不同的元素中时,它们就不再是兄弟元素了,JQuery方法。siblings()也不会返回它们。
不依赖复选框的位置,你可以使用类标记它们,然后按类过滤,并相应地设置复选框的值。
$('.example').live('change', function() {
$('.example').prop('checked',$(this).is(":checked"));
});
为您制作了一个小JFiddle示例- https://jsfiddle.net/sa4eu86d/3/
相关文章:
- jQuery在两个字符串标识符之间选择HTML
- Jquery:当两个或多个条件为true时,选择一个元素
- 为什么在这种情况下要向JQuery添加两个链接
- 如何使用jQuery合并两个json对象
- 如何使用jquery将两个字段组合为下拉菜单中的选项
- JQuery从两个表中拖放
- 如何在jquery中将两个值的值相乘
- JavaScript/jQuery在两个iframe之间拖放元素
- 使用jQuery删除两个类
- JQuery选择:两个属性's值不相等
- 如何使用jQuery在两个元素之间切换类
- 使用 jquery 控制两个选择输入的组合值
- 使用jQuery组合两个表单输入值
- 如何使用JS/jQuery验证两个下拉字段中的时间值
- jquery UI 两个可拖动对象冲突
- 如何使用 jQuery 比较两个文本输入类型框值
- 如何使用jQuery将两个html包含在另一个html中
- jQuery 使用两个下拉列表更改输入 css 样式
- 使用 jquery 的两个日期时间之间的倒计时
- jQuery按两个变量过滤,其中一个可能未定义