jquery中checkbox使用方法简单实例演示


Posted in Javascript onNovember 24, 2015

和大家分享一段基于jQuery实现checkbox列表全选、反选和不选功能的代码,适用于网页多选后需要进行批量操作的场景(如批量删除等)。文章结合实例,代码简洁,基本覆盖选项选择操作的方方面面,希望可以帮到有需要的前端开发爱好者。

jquery中checkbox使用方法简单实例演示

引入jquery库
<script src="ajax/libs/jquery/1.10.2/jquery.min.js"></script>
构建HTML

一般从数据库读出来的列表都需要批量选中以便删除与编辑等,下面我们就来模拟下,实现复选框checkbox的全选与不选,先建立html

<ul id="list"> 
 <li><label><input type="checkbox" value="1"> 1.我是记录来的呢</label></li> 
 <li><label><input type="checkbox" value="2"> 2.哈哈,真的太天真了</label></li> 
 <li><label><input type="checkbox" value="3"> 3.爱上你是我的错吗?</label></li> 
 <li><label><input type="checkbox" value="4"> 4.从开始你就不应用爱上我</label></li> 
 <li><label><input type="checkbox" value="5"> 5.喜欢一个人好难</label></li> 
 <li><label><input type="checkbox" value="6"> 6.你在那里呢</label></li> 
</ul> 
<input type="checkbox" id="all"> 
<input type="button" value="全选" class="btn" id="selectAll"> 
<input type="button" value="全不选" class="btn" id="unSelect"> 
<input type="button" value="反选" class="btn" id="reverse"> 
<input type="button" value="获得选中的所有值" class="btn" id="getValue">

jQuery 代码

1、全选或全不选。当勾选全选按钮#selectAll旁边的复选框#all时,列表中的选项全部选中,反之取消勾选则列表中的选项全部为未选中状态。

$("#all").click(function(){ 
 if(this.checked){ 
  $("#list :checkbox").attr("checked", true); 
 }else{ 
  $("#list :checkbox").attr("checked", false); 
 } 
});

2、全选。当点击全选按钮#selectAll或者勾选全选按钮旁边的复选框#all时,列表中所有的选项都会被选中,包括全选旁边的复选框也是选中状态。

$("#selectAll").click(function () { 
 $("#list :checkbox,#all").attr("checked", true); 
});

3、全不选。当点击全不选按钮#unSelect时,列表中所有的选项都是未选中状态,当然包括#all也是未选中状态。

$("#unSelect").click(function () { 
 $("#list :checkbox,#all").attr("checked", false); 
});

4、反选。当点击反选按钮#reverse,列表中所有被选中的选项变为未选中状态,而所有未选中的选项变为已选中状态,当然也要注意#all的状态。

$("#reverse").click(function () { 
 $("#list :checkbox").each(function () { 
  $(this).attr("checked", !$(this).attr("checked")); 
 }); 
 allchk(); 
});

代码中遍历了选项列表,然后改变checked属性,最后调用函数allchk(),后面将介绍该函数。

5、获得选中的所有值。我们要跟后台程序交互就必须获取列表中所选项的值,我们通过遍历数组,将选中项的值存放在数组中,最后组成由逗号(,)隔开的字符串,开发者就可以通过获取这个字符串进行相应的操作了。

$("#getValue").click(function(){ 
 var valArr = new Array; 
 $("#list :checkbox[checked]").each(function(i){ 
  valArr[i] = $(this).val(); 
 }); 
 var vals = valArr.join(',');//转换为逗号隔开的字符串 
 alert(vals); 
});

为了完善选中选项功能,我们在单击列表中某个选项时,如果勾选的项刚好满足全部选中的条件,则#all也要相应的变为选中状态,同样,如果事先所有的选项是选中状态时,当取消勾选某个选项时,那么#all也要相应的变为未选中状态。

//设置全选复选框 
$("#list :checkbox").click(function(){ 
 allchk(); 
});

函数allchk()就是用来检测全选框#all应该是选中状态还是未选中状态的,请看代码。

function allchk(){ 
 var chknum = $("#list :checkbox").size();//选项总个数 
 var chk = 0; 
 $("#list :checkbox").each(function () { 
  if($(this).attr("checked")==true){ 
   chk++; 
  } 
 }); 
 if(chknum==chk){//全选 
  $("#all").attr("checked",true); 
 }else{//不全选 
  $("#all").attr("checked",false); 
 } 
}

总结

jQuery操作复选框的选中和不选中状态非常简单,使用attr()来设置"checked"属性的值,true未选中,false为未选中,在整个全选、反选过程中注意处理全选复选框的选中状态,以及获取选中选项的值。以下我将所有jQuery代码整理在一起,供大家参考。

$(function () { 
 //全选或全不选 
 $("#all").click(function(){ 
  if(this.checked){ 
   $("#list :checkbox").attr("checked", true); 
  }else{ 
   $("#list :checkbox").attr("checked", false); 
  } 
  }); 
 //全选 
 $("#selectAll").click(function () { 
   $("#list :checkbox,#all").attr("checked", true); 
 }); 
 //全不选 
 $("#unSelect").click(function () { 
   $("#list :checkbox,#all").attr("checked", false); 
 }); 
 //反选 
 $("#reverse").click(function () { 
   $("#list :checkbox").each(function () { 
    $(this).attr("checked", !$(this).attr("checked")); 
   }); 
   allchk(); 
 }); 
  
 //设置全选复选框 
 $("#list :checkbox").click(function(){ 
  allchk(); 
 }); 
 
 //获取选中选项的值 
 $("#getValue").click(function(){ 
  var valArr = new Array; 
  $("#list :checkbox[checked]").each(function(i){ 
   valArr[i] = $(this).val(); 
  }); 
  var vals = valArr.join(','); 
   alert(vals); 
 }); 
}); 
function allchk(){ 
 var chknum = $("#list :checkbox").size();//选项总个数 
 var chk = 0; 
 $("#list :checkbox").each(function () { 
  if($(this).attr("checked")==true){ 
   chk++; 
  } 
 }); 
 if(chknum==chk){//全选 
  $("#all").attr("checked",true); 
 }else{//不全选 
  $("#all").attr("checked",false); 
 } 
}

通过本文希望大家对jquery中checkbox的使用方法有个大概的认识,再通过大量实例熟练掌握checkbox使用方法。

Javascript 相关文章推荐
HTA版JSMin(省略修饰语若干)基于javascript语言编写
Dec 24 Javascript
Jquery从头学起第四讲 jquery入门教程
Aug 01 Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
深入浅析JavaScript中的scrollTop
Jul 11 Javascript
深入剖析JavaScript面向对象编程
Jul 12 Javascript
js实现交通灯效果
Jan 13 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
Feb 15 Javascript
angular将html代码输出为内容的实例
Sep 30 Javascript
深入理解 Koa 框架中间件原理
Oct 18 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
Nov 24 #Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
Nov 24 #Javascript
基于jquery实现简单的手风琴特效
Nov 24 #Javascript
jQuery插件实现无缝滚动特效
Nov 24 #Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
Nov 24 #Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 #Javascript
javascript实现加载xml文件的方法
Nov 24 #Javascript
You might like
PHP的FTP学习(一)[转自奥索]
2006/10/09 PHP
一个PHP日历程序
2006/12/06 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
js拦截alert对话框另类应用
2013/01/16 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
浅谈如何通过node.js对数据进行MD5加密
2018/05/16 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
angular4自定义表单控件[(ngModel)]的实现
2018/11/23 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
5 个强大的HTML5 API 函数推荐
2014/11/19 HTML / CSS
超市促销活动总结
2014/07/01 职场文书
司机岗位职责说明书
2014/07/29 职场文书
社区服务活动报告
2015/02/05 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
只需要12页,掌握撰写一流商业计划书的技巧
2019/05/07 职场文书