当前位置: 首页 > 图文教程 > 网络编程 > Javascript > checkbox 多选框 联动实现代码

Javascript
网页中的图片的处理方法与代码
用javascript实现jquery的document.ready功能的实现代码
Exitjs获取DataView中图片文件名
javascript 加入收藏、设为首页(IE,firefox兼容脚本之家版)
isArray()函数(JavaScript中对象类型判断的几种方法)
Javascript 二维数组
js setattribute批量设置css样式
Javascript 复制数组实现代码
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
JavaScript 闭包在封装函数时的简单分析
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
JavaScript 字符串操作的几种常见方法
javascript &&和||运算法的另类使用技巧
[原创]javascript代码在ie8里报错 document.getElementById(...) 为空或不是对象的解决方法
js鼠标移动在title中显示图片的效果代码
JavaScript Alert通用美化类
javascript 新闻列表排序简单封装
Javascript 构造函数,公有,私有特权和静态成员定义方法
javascript 设置某DIV区域内的checkbox复选框
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题

Javascript 中的 checkbox 多选框 联动实现代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 165 ::
收藏到网摘: n/a

对于checkbox 多选的联动效果,是个不错的思路,附代码 父类
复制代码 代码如下:

<input type="checkbox" name="father" forcheckboxgroup="groupname1"/>

子类
复制代码 代码如下:

<input type="checkbox" name="son" group="groupname1"/>

实现代码
复制代码 代码如下:

<script type="text/javascript">
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 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) {
master.indeterminate = false;
master.checked = true;
}
if (chknosel) {
master.indeterminate = false;
master.checked = false;
}
if(!chkselall&&!chknosel)master.indeterminate = true;
}
else{
master.disabled = chknosel;
}
}
}
window.attachEvent('onload',CheckboxGroup);
</script>