CheckBox级联选择
2010-10-11 13:16
316 查看
以下是JS代码
Java代码
//判断所有的checkbox的选中状态
//@id : checkbox的id
function checkedStatus(id){
//获取checkbox
var temp = document.getElementById(id);
//设置checkbox的下级checkbox的状态
setChildCheckBox(temp);
//设置checkbox的上级checkbox的状态
setParentCheckBox(temp);
}
//获取checkbox的下级checkbox信息
//@entity : checkbox的DOM对象
function findChildCheckBox(entity){
//存放下级checkbox的数组
var chkArray = new Array();
//判断是否有input标签
if(document.getElementsByTagName("input")){
//获取所有的input标签
var inputs = document.getElementsByTagName("input");
//遍历input标签,获取下级checkbox
for(var i = 0; i < inputs.length; i++){
var ele = inputs[i];
//判断type是“checkbox”,并且checkbox的parentId等于entity的id
if(ele.type == "checkbox" && ele.parentId == entity.id){
chkArray.push(ele);
}
}
}
return chkArray;
}
//获取checkbox的同级checkbox信息
//@entity : checkbox的DOM对象
function findBrotherCheckBox(entity){
//存放同级checkbox的数组
var chkArray = new Array();
//判断是否有input标签
if(document.getElementsByTagName("input")){
//获取所有的input标签
var inputs = document.getElementsByTagName("input");
//遍历input标签,获取同级checkbox
for(var i = 0; i < inputs.length; i++){
var ele = inputs[i];
//判断type是“checkbox”,并且checkbox的parentId等于entity的parentId
if(ele.type == "checkbox" && ele.parentId == entity.parentId){
chkArray.push(ele);
}
}
}
return chkArray;
}
//获取checkbox的上级checkbox信息
//@entity : checkbox的DOM对象
function findParentCheckBox(entity){
//存放上级checkbox的对象
var _element = null;
//判断是否有input标签
if(document.getElementsByTagName("input")){
//获取所有的input标签
var inputs = document.getElementsByTagName("input");
//遍历input标签,获取上级checkbox
for(var i = 0; i < inputs.length; i++){
var ele = inputs[i];
//判断type是“checkbox”,并且checkbox的id等于entity的parentId
if(ele.type == "checkbox" && ele.id == entity.parentId){
_element = ele;
break;
}
}
}
return _element;
}
//设置checkbox的下级checkbox的状态
//@entity : checkbox的DOM对象
function setChildCheckBox(entity){
//entity的选中状态
var status = entity.checked;
//获取entity的下级checkbox
var childList = findChildCheckBox(entity);
//判断是否有下级
if(childList.length > 0){
//遍历下级checkbox,并设置状态
for(var i = 0; i < childList.length; i++){
childList[i].checked = status;
//设置childList[i]的下级checkbox的状态
setChildCheckBox(childList[i]);
}
}
}
//设置checkbox的上级checkbox的状态
//@entity : checkbox的DOM对象
function setParentCheckBox(entity){
//entity的上级checkbox的选中状态
var parentChecked = true;
//获取entity的上级checkbox
var parentCheckBox = findParentCheckBox(entity);
//判断是否有上级
if(parentCheckBox){
//获取entity的同级checkbox
var brotherList = findBrotherCheckBox(entity);
//判断是否有同级
if(brotherList.length > 0){
//遍历同级checkbox
for(var i = 0; i < brotherList.length; i++){
//如果同级的checkbox有未选中的状态,则设置上级的checkbox的状态为false
if(brotherList[i].checked == false){
parentChecked = false;
break;
}
}
}
//设置上级checkbox的选中状态
parentCheckBox.checked = parentChecked;
//设置parentCheckbox的上级checkbox的状态
setParentCheckBox(parentCheckBox);
}
}
Java代码
//判断所有的checkbox的选中状态
//@id : checkbox的id
function checkedStatus(id){
//获取checkbox
var temp = document.getElementById(id);
//设置checkbox的下级checkbox的状态
setChildCheckBox(temp);
//设置checkbox的上级checkbox的状态
setParentCheckBox(temp);
}
//获取checkbox的下级checkbox信息
//@entity : checkbox的DOM对象
function findChildCheckBox(entity){
//存放下级checkbox的数组
var chkArray = new Array();
//判断是否有input标签
if(document.getElementsByTagName("input")){
//获取所有的input标签
var inputs = document.getElementsByTagName("input");
//遍历input标签,获取下级checkbox
for(var i = 0; i < inputs.length; i++){
var ele = inputs[i];
//判断type是“checkbox”,并且checkbox的parentId等于entity的id
if(ele.type == "checkbox" && ele.parentId == entity.id){
chkArray.push(ele);
}
}
}
return chkArray;
}
//获取checkbox的同级checkbox信息
//@entity : checkbox的DOM对象
function findBrotherCheckBox(entity){
//存放同级checkbox的数组
var chkArray = new Array();
//判断是否有input标签
if(document.getElementsByTagName("input")){
//获取所有的input标签
var inputs = document.getElementsByTagName("input");
//遍历input标签,获取同级checkbox
for(var i = 0; i < inputs.length; i++){
var ele = inputs[i];
//判断type是“checkbox”,并且checkbox的parentId等于entity的parentId
if(ele.type == "checkbox" && ele.parentId == entity.parentId){
chkArray.push(ele);
}
}
}
return chkArray;
}
//获取checkbox的上级checkbox信息
//@entity : checkbox的DOM对象
function findParentCheckBox(entity){
//存放上级checkbox的对象
var _element = null;
//判断是否有input标签
if(document.getElementsByTagName("input")){
//获取所有的input标签
var inputs = document.getElementsByTagName("input");
//遍历input标签,获取上级checkbox
for(var i = 0; i < inputs.length; i++){
var ele = inputs[i];
//判断type是“checkbox”,并且checkbox的id等于entity的parentId
if(ele.type == "checkbox" && ele.id == entity.parentId){
_element = ele;
break;
}
}
}
return _element;
}
//设置checkbox的下级checkbox的状态
//@entity : checkbox的DOM对象
function setChildCheckBox(entity){
//entity的选中状态
var status = entity.checked;
//获取entity的下级checkbox
var childList = findChildCheckBox(entity);
//判断是否有下级
if(childList.length > 0){
//遍历下级checkbox,并设置状态
for(var i = 0; i < childList.length; i++){
childList[i].checked = status;
//设置childList[i]的下级checkbox的状态
setChildCheckBox(childList[i]);
}
}
}
//设置checkbox的上级checkbox的状态
//@entity : checkbox的DOM对象
function setParentCheckBox(entity){
//entity的上级checkbox的选中状态
var parentChecked = true;
//获取entity的上级checkbox
var parentCheckBox = findParentCheckBox(entity);
//判断是否有上级
if(parentCheckBox){
//获取entity的同级checkbox
var brotherList = findBrotherCheckBox(entity);
//判断是否有同级
if(brotherList.length > 0){
//遍历同级checkbox
for(var i = 0; i < brotherList.length; i++){
//如果同级的checkbox有未选中的状态,则设置上级的checkbox的状态为false
if(brotherList[i].checked == false){
parentChecked = false;
break;
}
}
}
//设置上级checkbox的选中状态
parentCheckBox.checked = parentChecked;
//设置parentCheckbox的上级checkbox的状态
setParentCheckBox(parentCheckBox);
}
}
//判断所有的checkbox的选中状态//@id : checkbox的idfunction checkedStatus(id){//获取checkboxvar temp = document.getElementById(id);//设置checkbox的下级checkbox的状态setChildCheckBox(temp);//设置checkbox的上级checkbox的状态setParentCheckBox(temp);}//获取checkbox的下级checkbox信息//@entity : checkbox的DOM对象function findChildCheckBox(entity){//存放下级checkbox的数组var chkArray = new Array();//判断是否有input标签if(document.getElementsByTagName("input")){//获取所有的input标签var inputs = document.getElementsByTagName("input");//遍历input标签,获取下级checkboxfor(var i = 0; i < inputs.length; i++){var ele = inputs[i];//判断type是“checkbox”,并且checkbox的parentId等于entity的idif(ele.type == "checkbox" && ele.parentId == entity.id){chkArray.push(ele);}}}return chkArray;}//获取checkbox的同级checkbox信息//@entity : checkbox的DOM对象function findBrotherCheckBox(entity){//存放同级checkbox的数组var chkArray = new Array();//判断是否有input标签if(document.getElementsByTagName("input")){//获取所有的input标签var inputs = document.getElementsByTagName("input");//遍历input标签,获取同级checkboxfor(var i = 0; i < inputs.length; i++){var ele = inputs[i];//判断type是“checkbox”,并且checkbox的parentId等于entity的parentIdif(ele.type == "checkbox" && ele.parentId == entity.parentId){chkArray.push(ele);}}}return chkArray;}//获取checkbox的上级checkbox信息//@entity : checkbox的DOM对象function findParentCheckBox(entity){//存放上级checkbox的对象var _element = null;//判断是否有input标签if(document.getElementsByTagName("input")){//获取所有的input标签var inputs = document.getElementsByTagName("input");//遍历input标签,获取上级checkboxfor(var i = 0; i < inputs.length; i++){var ele = inputs[i];//判断type是“checkbox”,并且checkbox的id等于entity的parentIdif(ele.type == "checkbox" && ele.id == entity.parentId){_element = ele;break;}}}return _element;}//设置checkbox的下级checkbox的状态//@entity : checkbox的DOM对象function setChildCheckBox(entity){//entity的选中状态var status = entity.checked;//获取entity的下级checkboxvar childList = findChildCheckBox(entity);//判断是否有下级if(childList.length > 0){//遍历下级checkbox,并设置状态for(var i = 0; i < childList.length; i++){childList[i].checked = status;//设置childList[i]的下级checkbox的状态setChildCheckBox(childList[i]);}}}//设置checkbox的上级checkbox的状态//@entity : checkbox的DOM对象function setParentCheckBox(entity){//entity的上级checkbox的选中状态var parentChecked = true;//获取entity的上级checkboxvar parentCheckBox = findParentCheckBox(entity);//判断是否有上级if(parentCheckBox){//获取entity的同级checkboxvar brotherList = findBrotherCheckBox(entity);//判断是否有同级if(brotherList.length > 0){//遍历同级checkboxfor(var i = 0; i < brotherList.length; i++){//如果同级的checkbox有未选中的状态,则设置上级的checkbox的状态为falseif(brotherList[i].checked == false){parentChecked = false;break;}}}//设置上级checkbox的选中状态parentCheckBox.checked = parentChecked;//设置parentCheckbox的上级checkbox的状态setParentCheckBox(parentCheckBox);}}
相关文章推荐
- treeview绑定到关系数据源,生成树,并实现checkbox的级联选择
- TreeView 控件 Checkbox 级联选择
- 转:treeview checkbox js 无限极级联选择 方案
- js实现checkbox级联选择
- TreeView中使用checkBox时子节点和父节点的级联选择
- treeview控件中的checkbox级联选择
- jquery实现checkbox级联选择
- 解决asp.net 2.0 中treeview的checkbox级联选择
- C#中TreeView的CheckBox的两种级联选择
- 可级联选择tree中的checkBox (flex)
- 解决treeview的checkbox级联选择
- jQuery实现的checkbox级联选择下拉菜单效果示例
- jquery checkbox 级联选择
- checkbox选择框全选及取消
- JavaScript之Select级联选择
- 点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态
- [导入][原创]级联checkbox,自用权限管理模块,需jQuery
- Android 中 在listview 中使用checkbox 遇到的选择问题
- android 解决listview中checkBox错位选择