这是网上摘的一段代码,现在选择一个子checkbox父的不能被选中,我想要实现 在子checkbox中点击一个 父checkbox也被选中。
求教各位牛人
父类
<input type="checkbox" name="father" forcheckboxgroup="groupname1"/>
子类
<input type="checkbox" name="son" group="groupname1"/>
<input type="checkbox" name="son" group="groupname1"/>
<input type="checkbox" name="son" group="groupname1"/>
实现代码
<script type="text/javascript">
//JS checkbox类型父子联动
function CheckboxGroup(){
var arrelement = document.all;
var i=0;
while(i<arrelement.length){
var forgroupattrib = arrelement[i].getAttribute('forcheckboxgroup');
if(forgroupattrib != null && forgroupattrib != ''){
arrelement[i].setAttribute('groupmember',_getGroupMember(arrelement[i]));
if(arrelement[i].tagName.toLowerCase() == 'input' && arrelement[i].type == 'checkbox'){
arrelement[i].onclick=function(){
//----------------------Checked All------------------
var groupmember = this.getAttribute('groupmember');
var i = 0;
while(i<groupmember.length){
groupmember[i].checked = this.checked;
i++;
}
//---------------------------------------------------
}
}
_setState(arrelement[i]);
}
i++;
}
}
function _getGroupMember(o){
var groupname = o.getAttribute('forcheckboxgroup');
var items = new Array;
var inputs = document.getElementsByTagName('input');
var i=0;
while(i<inputs.length){
if(inputs[i].type == 'checkbox'){
var groupattrib = inputs[i].getAttribute('group');
if(groupattrib == groupname){
items[items.length] = inputs[i];
var master = inputs[i].getAttribute('groupmaster');
if (master == null) {
master = new Array;
master[0] = o.uniqueID;
inputs[i].setAttribute('groupmaster', master);
}
else{
master[master.length] = o.uniqueID;
}
inputs[i].onpropertychange = function(){
if (event.propertyName == 'checked') {
var arro = this.getAttribute('groupmaster');
var i = 0;
while (i < arro.length) {
_setState(document.getElementById(arro[i]));
i++;
}
}
}
}
}
i++;
}
return items;
}
function _setState(o){
var master = o;
if(master!=null){
var chkselall = true;
var chknosel = true;
var chkselone = true;
var groupmember = master.getAttribute('groupmember');
var i = 0;
while(i<groupmember.length){
if(chkselall){
chkselall = groupmember[i].checked;
}
if(chknosel){
chknosel = !groupmember[i].checked;
}
i++;
}
if(master.tagName.toLowerCase() == 'input'&&master.type=='checkbox'){
if (chkselall || (!chkselall&&!chknosel)) {
master.checked = true;
}
if (chknosel) {
master.checked = false;
}
}
else{
master.disabled = chknosel;
}
}
}
window.attachEvent('onload',CheckboxGroup);
</script>
相关推荐
在EXT.NET框架中,TreePanel是一个非常重要的组件,它用于展示层次结构的数据,通常用于构建树形目录或层级关系的...记住,EXT.NET提供了一个强大的API,允许开发者对TreePanel的Checkbox操作和父子联动进行高度定制。
下面是一个简单的示例代码片段,展示了如何配置TreePanel以实现Checkbox和父子节点联动: ```csharp [XType("treepanel")] public class MyTreePanel : TreePanel { public MyTreePanel() { Title = "树形面板";...
在实际项目中,我们经常需要实现一个功能,即在ListView中加入CheckBox,让用户能够通过一个主CheckBox来控制所有子项CheckBox的选择状态,这就是所谓的全选/反选联动。在本文中,我们将深入探讨如何在WPF的MVVM...
仅供学习,有兴趣可以看看,高手勿入。代码很简单的。
在本文中,我们将深入探讨如何使用WPF(Windows Presentation Foundation)来实现一个具有复选框的层级联动树形菜单。这个功能丰富的菜单不仅允许用户通过右键操作进行展开、关闭、选择和反选所有节点,而且在选择...
在IT领域,尤其是在前端开发中,"checkbox二级联动"是一个常见的功能需求,它涉及到用户界面交互和数据管理。这个功能通常用于实现多级选择或分类筛选,例如在组织结构、产品分类或者层级菜单中。本案例中的...
当选择或取消选择TreeView的CheckBoxes的状态时,它的子节点和相关的父节点状态都随之变化。
复选框联动, 选中某一个节点,该节点的所有子节点均置为选中,该节点的所有父节点均置为选中
本文将深入探讨如何在jQuery环境下实现输入框(input)复选框(checkbox)的联动效果,即当某个复选框被选中时,能够自动触发关联的上级或下级复选框的状态改变。 ### 1. jQuery 基础 首先,确保你的项目已经引入...
总结来说,实现WPF中的Checkbox层级联动树形菜单涉及以下关键点:定义数据模型、绑定数据、创建右键菜单、实现事件处理程序以及处理父子节点的联动。通过这些步骤,我们可以创建出一个功能完备且易于操作的树形菜单...
在JavaScript开发中,多级联动多选checkbox插件是一种常见的交互元素,用于实现层次结构数据的筛选和选择。这类插件通常用在如地区选择、类别分类等场景,用户可以通过逐级选择来过滤出需要的结果。`cascadebox-...
在VB(Visual Basic)编程中,`TreeView`控件是一个常用元素,用于...总之,通过监听`BeforeCheck`事件并适当地更新节点状态,可以实现在VB中`TreeView`控件的复选框父子多级联动功能,提供一个用户友好的交互体验。
父子节点联动是指当用户操作父节点时(如点击、选中),子节点会相应地进行更新或显示,这样的交互设计能提升用户体验,让用户更好地理解和操作数据结构。在ASP.NET中,`treeview`控件提供了丰富的功能,可以方便地...
一个WinForm的TreeView,某node的CheckBox初始状态为false,当双击这个node的checkbox时,会出现很奇怪的情况: 第一次双击checkbox,checkbox显示的状态会切换两次状态,unchecked-> checked-> unchecked,而...
本文将详细探讨这些问题以及如何通过优化来实现“完美解决ListView和CheckBox的焦点冲突及CheckBox的复用问题”。 一、焦点冲突问题 在ListView中,通常一个列表项被点击时,焦点会自动转移到该列表项,但如果列表...
项目中需要实现Header与Node的CheckBox联动,在VirtualStringTree的Demo中没有发现相关的例子,网友提供的众多例子中也未涉及这方面的内容。代码只有短短几行,现上传供有同样需求的朋友参考。
在IT行业中,尤其是在前端开发领域,"CheckBox分级选中 复选框 上下级 联动"是一个常见的功能需求,通常应用于具有层级结构的数据展示和交互场景,比如树形菜单、组织架构选择等。这个功能的核心是实现复选框...
@param LableIdString label 表标前缀 这个用于多个分级 如 当前为第一级中有 input[type='checkbox'] value = 1 如果下面有级 则在此inpu 下应该加入 <label id='v1'> 以此类推 调用方式 $("#ViewSetS")....
然而,ListView的复用机制有时会导致一些问题,特别是在涉及复选框(Checkbox)的状态管理时。本篇文章将详细探讨这个问题,并提供一个完美的解决方案。 一、问题背景 ListView通过ViewHolder模式实现高效的滚动...
总之,"Asp.Net TreeView Checkbox"是一个实现树形结构数据选择的功能,通过设置TreeNode的属性和编写前端脚本,可以创建一个具有父子级Checkbox联动的用户界面。这个功能在管理大量分类数据或进行多级选择操作的...