`

网页全选javascript组件

    博客分类:
  • html
阅读更多
这是个网上找的网页复选框js全选组件例子。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><title>checkbox的js全选功能</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 <link href="default.css"  type="text/css" rel="stylesheet" /> 
<script language="JavaScript"  src="selectall.js"></script> 
<script>     function sel(obj){ 
         _tlsCheckboxSelAll(document.frmUser,obj); 
    
} </script> </head>

<body  bgcolor="#FFFFFF" topmargin="15px" leftmargin="5px" rightmargin="5px">		 <center><b>checkbox的js全选功能</b></center> 

<form name="frmUser"  id="frmUser" method="post">			 
<table class="tabelBoder"   width="100%" align="center" cellspacing="0" cellpadding="3" border="0"> <tr  height="30" class="RH1"> <td width="4%" align="left">

全选<input type="checkbox"  name="id_all" id="id_all" value="46" onclick="sel(this)"></td> <td  width="17%" align="left">姓名</td> <td width="23%" align="left">地址</td> </tr> <tr height="30" class="N1"> <td width="4%" align="left">

<input  type="checkbox" name="id" value="46" onclick="sel(this)"></td> <td width="17%" align="left">张三</td> <td width="23%" align="left">北京</td> </tr> <tr height="30" class="N1"> <td width="4%" align="left">

<input  type="checkbox" name="id" value="46" onclick="sel(this)"></td> <td width="17%" align="left">李四</td> <td width="23%" align="left">上海</td> </tr> <tr height="30" class="N1"> <td width="4%" align="left">

<input  type="checkbox" name="id" value="46" onclick="sel(this)"></td> <td  width="17%" align="left">王五</td> <td width="23%" align="left">天津</td> </tr> </table> </form> <ui>     <li>支持ie和firefox</li>     <li>选中全选 checkbox,则所有子checkbox自动选中</li>     <li>去掉选中全选checkbox,则所有 子checkbox自动全部取消选中</li>     <li>如果选中全部子checkbox,则全选 checkbox自动选中</li>     <li>全选后,如果去掉选中任何子checkbox,则全选 checkbox自动取消选中</li> </ul> </body></html> 


js代码:
/**
 * checkbox的点击方法
 * 要求:
 * 1.全选/全不选的checkbox的name属性为 单个checkbox的name属性名+_all , 注意:最后必须为_all.
 *   例如:单个checkbox的name=or_id,则全选checkbox的name=or_id_all
 * 2.全选/全不选的checkbox必须定义id属性,并且id属性值与name属性值相同
 * 3.所有单个的checkbox在同一个form中.
 * 4.全选/全不选的checkbox可以在form中也可以在form外面.
 * 5.整个页面不允许再有和全选/全不选checkbox同name和同id的组件.
 * 
 */
function _tlsCheckboxSelAll(formObj,checkboxClicked){
	var checkName = checkboxClicked.name;//取得点击的checkbox的name属性
	var index = checkName.indexOf("_all");//判断是否有_all字符串
	var isAll = false;
	if(index!=-1){//如果有_all
		if(index+"_all".length==checkName.length){//满足说明_all是在最后面,表示这是个全选/全不选的checkbox.
			isAll = true;
		}
	}
	var thisChecked = checkboxClicked.checked;//当前checkbox的状态 true=选中 false=不选中
	if(isAll){//点了全选/全不选的checkbox
		var childCheckName = checkName.substring(0,index);
		eval("var allChildCheckboxs = formObj."+childCheckName);
		var childCheckboxCount = allChildCheckboxs.length;
		if(childCheckboxCount==null){//只有1个单个的checkbox
			allChildCheckboxs.checked = thisChecked;
		}else{//有2个或2个以上的单个checkbox
			for(var i=0;i<childCheckboxCount;i++){
				allChildCheckboxs[i].checked = thisChecked;
			}
		}
	}else{//点了单个的checkbox
		var parentCheckboxName = checkName+"_all";
		if(thisChecked==false){
			document.getElementById(parentCheckboxName).checked=false;
		}else{//判断点了当前checkbox后是否全部的单个checkbox都处于true状态
			eval("var allChildCheckboxs = formObj."+checkName);
			var childCheckboxCount = allChildCheckboxs.length;
			var isAllChecked = true;
			if(childCheckboxCount==null){//只有1个单个的checkbox
				if(allChildCheckboxs.checked==false){
					isAllChecked = false;
				}
			}else{//有2个或2个以上的单个checkbox
				for(var i=0;i<childCheckboxCount;i++){
					if(allChildCheckboxs[i].checked==false){
						isAllChecked = false;
						break;
					}
				}				
			}
			if(isAllChecked){//全部单个checkbox都处于true状态
				document.getElementById(parentCheckboxName).checked=true;
			}
		}
	}
}

分享到:
评论

相关推荐

    JavaScript网页特效范例宝典源码

    2.1 文本框/编辑框/隐藏域组件 96 实例055 获取文本框/编辑框/隐藏域的值 96 实例056 自动计算金额 97 实例057 设置文本框的只读属性 98 实例058 限制多行文本域输入的字符个数 100 实例059 自动选择文本框/编辑框中...

    【JavaScript源代码】vue开发树形结构组件(组件递归).docx

     要实现全选单选,子类被逐个全选父类也要标记选中。 第一反应就是树形结构,和递归调用。曾经在做WPF时记得有现成的组件,也学着写过对应的后台。这次我要自己写一个前端的组件了。 这只是我自己花了点时间写的...

    Javascript 实现TreeView CheckBox全选效果

    代码如下: function OnTreeNodeChecked() { var ele = event.srcElement; if (ele.type == ‘checkbox’) { var childrenDivID = ele.id.replace(‘CheckBox’, ‘Nodes’); var div = document.getElementById...

    一个基于Vue2的联动选择组件

    一个基于Vue2的联动选择组件

    React版本的Todolist案例源码-组件化

    内有功能:添加、删除、全选全不选、选中数量、选中删除 React Todolist组件化案例是一个使用React框架开发的待办事项列表应用程序。该应用程序将待办事项列表分解为多个可重用的组件,包括添加待办事项、显示待办...

    react-multi-select:React的多选组件

    React多选组件 React多选组件 安装: npm install --save @khanacademy/react-multi-select yarn add @khanacademy/react-multi-select 用法: 有关如何使用该组件的信息,请参见/src/stories/index.js的示例,但...

    ExtJS4中文教程2 开发笔记 chm

    ExtJS4 Grid组件 Extjs4 TreeGrid Extjs4 TreePanel实例 ExtJs4 动态加载 Extjs4 带复选框的树(Checkbox tree) Extjs4 新的布局方式 Extjs4 锁定表头(Locking Grid)功能 Extjs4.0 MVC实例 Extjs4.0动态填充...

    elSelect组件.vue

    Vue.js 再封装elSelect,实现多选,全选,反选,失去焦点并隐藏;点击空白处会自动收起下拉菜单

    原生systable表格插件(支持API接口)

    SYSTABLE version1.2 table表格插件,是本人独立开发的后台通用系统SYSUI的...支持排序,checkbox全选,表格列宽拖拽,按钮操作,分页等table表格功能操作。 支持表格直接修改信息,支持checkbox单选框选择, 文本修改。

    BufferDetailView:EasyUI 网格组件的 BufferView 现在自带 DetailView 选项

    缓冲区细节视图EasyUI 网格组件的 BufferView 现在带有 DetailView 选项。 #USAGE ###1.介绍源码 requirejs.config({ baseUrl: '/js/lib', paths: { app: '../app', jquery: 'jquery.min', easyui: 'jquery.easyui....

    ExtJS(ajax框架) 4.2.1

    自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 再加上可编辑grid,添加新行,删除一或多行,提示多行数据,拖拽改变...

    textbox:输入框增强组件

    表单输入域组件 对原生输入框做了封装,并在此基础上扩展。 提供的输入框种类 文本输入框 TextBox 所有输入框的基类。 支持的特性有: 支持输入框获取焦点时自动全选内容,开关功能 支持禁止粘贴,开关功能 支持内容...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    示例之全选和反选以及取消 javascript必须加分号 示例之后台管理左侧菜单 今日内容梳理 本周作业 第16周 上节作业问题答疑 今日内容计划 CSS内容补充以及后台管理页面布局 后台管理页面布局 JavaScript内容回顾 ...

    amis前端低代码框架-其他

    amis 是一个低代码前端框架,它使用 JSON 配置来生成页面,可以节省页面开发工作量,极大...Select 组件自定义菜单模式下无法全选问题修复 Number 最大最小值校验问题修复 sdk 中 dialog 里的编辑器弹窗被遮挡问题修复

    《javaScrip开发技术大全》源代码

    • sample04.htm 在同一个网页中使用不同脚本语言 • sample05.htm 判断浏览器对JavaScript版本的支持情况 • sample06.htm 引用外部JavaScript • sample07.htm 在同一个HTML文档...

    js使用小技巧

    自动全选 ()"&gt; ENTER键可以让光标移到下一个输入框 (event.keyCode==13)event.keyCode=9"&gt; 文本框的默认值 (this.defaultValue)"&gt; title换行 obj.title = "123&#13sdfs&#32" 获得时间所代表的微秒 var n1 ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 ...15 再插两道JavaScript面试题 16 Model操作之select_related以及...

    date-range-picker:dependencies:tear-off_calendar:灵活的React日期范围选择器日历,没有依赖项

    全选按钮-选择当前所有董事会日期的选项。 是否查看日期,月份或年份。 板号-将组件配置为一块或两块板的选项。 安装 $ npm i dates-picker 用法 function callbackFunction ( dates ) { console . log ( `The ...

    Scriptable:可编写脚本的-小部件-iOS 14

    1,全选复制·快捷指令|可便捷解决手机复制scriptable代码问题 2,脚本订阅 作者: 序号 推荐指数 说明 友情链接 示意图 1个 ★★★★★ 支持查询全国所有省份的油价实时数据 2个 ★★★★★ 时间倒计时百分比 3 ...

Global site tag (gtag.js) - Google Analytics