Jquery 获取checkbox的checked问题


Posted in Javascript onNovember 16, 2011

注意: 操作checkbox的checked,disabled属性时jquery1.6以前版本用attr,    1.6以上(包含)建议用prop

1、根据id获取checkbox

 $("#Checkbox1");

2、获取所有的checkbox    

$("input[type='checkbox']");//或者$(":checkbox");

3、获取所有选中的checkbox  

  $("input:checkbox:checked");
  //或$("input[type='checkbox']:checked");
  //或$("input:[type='checkbox']:checked");

4、获取checkbox值
    用.val()获取

$("#Checkbox").val();

 5、获取多个选中的checkbox值   

var vals = [];
 $('input:checkbox:checked').each(function (index, item) {
 vals.push($(this).val());
 });

6、判断checkbox是否选中(jquery 1.6以前版本 用  $(this).attr("checked") 

  用prop查:选中时checked值为true,未选中时checked值为false

$("#cbCheckbox1").click(function () {
 if ($(this).prop("checked")) {
  alert("选中");
 } else {
  alert("没有选中");
 }
});

用attr查:选中checked值为checked,未选中时checked值为undefined

7、设置checkbox为选中状态  

$('input:checkbox').attr("checked", 'checked');

$('input:checkbox').prop("checked", true);

8、设置checkbox为不选中状态

$('input:checkbox').prop("checked", false);//或$('input:checkbox').attr("checked", '');

 9、设置checkbox为禁用状态(jquery<1.6用attr,jquery>=1.6建议用prop)   

$("input[type='checkbox']").attr("disabled", "disabled");
//或$("input[type='checkbox']").attr("disabled", true);
//或$("input[type='checkbox']").prop("disabled", true);
//或$("input[type='checkbox']").prop("disabled", "disabled");

10、设置checkbox为启用状态(jquery<1.6用attr,jquery>=1.6建议用prop)

$("input[type='checkbox']").removeAttr("disabled");
//或$("input[type='checkbox']").attr("disabled", false);
//或$("input[type='checkbox']").prop("disabled", "");

下面是其他网友的补充

事实证明一切,自己测试了N遍,发现网上的说法和自己以前的理解都是错的,不知道大家有没发现.

下面来看看网上大多资料的说法

转别人的一些东西:
jquery判断checkbox是否被选中
在html的checkbox里,选中的话会有属性checked="checked"。
如果用一个checkbox被选中,alert这个checkbox的属性"checked"的值alert($(#xxx).attr("checked")),会打印出"true",而不是"checked"!
如果没被选中,打印出的是"undefined"。
注意红色的部分,这里说到

$("#chekbox").sttr("checked")//should be print "true" , not "checked"

经过测试,证明上面说法有问题

<script type="text/javascript"> 
$(function() { 
$("#button").click(function() { 
alert($("#checkbox").attr("checked")); 
}); 
}); 
</script> 
<input type="checkbox" name="checkbox" id="checkbox">
<input type="button" id="button" value="Click Me">

//上面得出的结果是: 如果勾上checkbox,会打印出 “checked” , 如果取消打勾 会打印出 "undefined"
实验证明Jquery获取checked的值得打印出"true"是错误的
举一反三:
而且发现Jquery获取已经被勾上的checkbox,永远都是"checked" 这让人费解,如果有人知道为什么,可以告诉我一下,哈~~

<script type="text/javascript"> 
$(function() { 
$("#button").click(function() { 
alert($("#checkbox").attr("checked")); 
}); 
}); 
</script> 
<input type="checkbox" name="checkbox" id="checkbox" checked>
<input type="button" id="button" value="Click Me">

//注意红色位置,如果默认checkbox为checked状态,测试会发现,把勾去掉也是只会输出"checked" , 表示不理解为什么 Jquery会这样
解决方法,还是用document.get获取吧:

<script> 
function getcheckbox(){ 
var test = document.getElementById("checkbox").checked; 
alert(test); 
} 
</script> 
<input type="checkbox" name="checkbox" id="checkbox">
<input type="button" id="button" value="Click Me" onclick="getcheckbox()">

//选中为"true",取消选中为"false"
如果有错,希望指正。网上搜索的问题都是一个帖子转N遍,自己测试证明一下

checkbox选中与取消选择

1.html

<form>
 <input type="checkbox" name="items" value="足球" />足球
 <input type="checkbox" name="items" value="篮球" />篮球
 <input type="checkbox" name="items" value="羽毛球" />羽毛球
</form>

2.js

//全选中
$("input:checkbox").prop("checked","checked");
//取消选中
$("input:checkbox").removeAttr("checked");

注意:使用attr(),会发现代码那里的checked="checked",但是页面input上没有显示出来

Javascript 相关文章推荐
用Javascript评估用户输入密码的强度实现代码
Nov 30 Javascript
js事件(Event)知识整理
Oct 11 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
layui导航栏实现代码
May 19 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
node.js中cluster的使用教程
Jun 09 Javascript
koa-router源码学习小结
Sep 07 Javascript
基于React Native 0.52实现轮播图效果
Aug 25 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
Node.js API详解之 os模块用法实例分析
May 06 Javascript
vue滑动吸顶及锚点定位的示例代码
May 10 Javascript
JS 操作符整理[推荐收藏]
Nov 15 #Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 #Javascript
关于js datetime的那点事
Nov 15 #Javascript
基于jquery封装的一个js分页
Nov 15 #Javascript
js 利用className得到对象的实现代码
Nov 15 #Javascript
基于jquery的web页面日期格式化插件
Nov 15 #Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
Nov 15 #Javascript
You might like
isset和empty的区别
2007/01/15 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
JQuery1.6 使用方法三
2011/11/23 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
Python简单生成8位随机密码的方法
2017/05/24 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
如何安装多版本python python2和python3共存以及pip共存
2018/09/18 Python
浅谈django的render函数的参数问题
2018/10/16 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
美国领先的家居装饰和礼品商店:Kirkland’s
2017/01/30 全球购物
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
Hibernate持久层技术
2013/12/16 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
四年级语文教学反思
2014/02/05 职场文书
高中军训感想300字
2014/03/04 职场文书
团日活动总结书
2014/05/08 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
千万级用户系统SQL调优实战分享
2022/03/03 MySQL