自动检查/取消检查父输入
Automatically checking / unchecking parent inputs
我希望有人能帮我。
我正在尝试自动选中输入列表中的父项,但如果未选中父项,也会取消选中子项。
最棒的是,我发现了一些可以完美复制所需功能的代码:http://jsfiddle.net/3y3Pb/14/
编辑:为了澄清-所需的功能是:勾选标记一个子输入&将检查所有父项。取消选中父项-将取消选中所有子项输入。请参阅上面的示例。
然而,这似乎不适用于我的特定代码(它是从WordPress插件-高级自定义字段输出的),所以我不想修改它)。
我已经把范围缩小到我认为的问题所在。ACF用CCD_ 1封装每个输入。我不知道为什么,但这破坏了功能:
http://jsfiddle.net/3y3Pb/223/
当我移除<label></label>
时,它工作正常:
http://jsfiddle.net/3y3Pb/225/
更改标记在这里并不是一个真正的选择,如果有人能帮助我完成这项工作,我将不胜感激!
这应该可以工作,它很简单,只使用div和几行jquery:
$('[type="checkbox"]').change(function () {
var kids = $(this).next().next();
if (kids.is('div') && !$(this).prop('checked'))
{
kids.children().each(function(){$(this).prop('checked',false)});
}
var thisChecked = $(this).prop('checked');
var master = $(this).parent().prevAll('[type="checkbox"]:first');
master.prop('checked', thisChecked ? true : master.prop('checked'));
});
div {
margin-left: 25px;
}
div div {
margin-left: 25px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" />Master Check
<br />
<div>
<input type="checkbox" />Slave Check 1
<br />
<input type="checkbox" />Slave Check 2
<br />
<input type="checkbox" />Slave Check 3
<br />
<div>
<input type="checkbox" />Slave 2 Check 1
<br />
<input type="checkbox" />Slave 2 Check 2
<br />
<input type="checkbox" />Slave 2 Check 3</div>
</div>
我改进了javascript代码。
$(document).ready(function() {
$('input[type=checkbox]').click(function(){
// if is checked
if($(this).is(':checked')){
$(this).parents('ul').children('li').children('label').find('input').prop('checked', true);
} else {
// uncheck all children
$(this).closest('li').find('input').prop('checked', false);
}
});
});
Children
在DOM树中向下移动一个级别,而find
向下移动多个级别以查看后代。
这是标签-这里是解决方案:
$('input[type=checkbox]').click(function(){
// if is checked
if($(this).is(':checked')){
$(this).parents('li').children('label').find('input[type=checkbox]').prop('checked', true);
} else {
// uncheck all children
$(this).closest('li').find('input[type=checkbox]').prop('checked', false);
}
});
相关文章:
- 使用onkeyup JS事件检查输入的值是否唯一
- 如何使用JQuery检查输入(电子邮件)字段是否包含特殊字符
- 检查输入是否未更改
- 获取检查输入无线电的标签
- 想要检查输入类型编号的值
- 在检查输入时切换标签分类 javascript
- 检查输入/文本区域中粘贴的文本是否存在无效的章程
- 如何检查输入框值在使用淘汰之前是否发生了更改
- 检查输入是否都是数字html javascript
- 我无法检查输入复选框元素
- 检查输入框的数组是否为空
- 如何检查输入type=“file”是否选择了文件
- 键入时检查输入中的重复数据
- 检查输入按钮
- 正则表达式,用于检查输入是否有字符或至少有1个笑脸
- 如何检查输入中的值以及值是否存在提交表单?jquery.
- jQuery - 检查输入字段是否保持不变
- 根据数组检查输入变量
- 如何检查输入框是否仅包含数字或逗号
- j查询验证插件,检查输入默认值