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 相关文章推荐
在IE中调用javascript打开Excel的代码(downmoon原作)
Apr 02 Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
Jan 31 Javascript
腾讯UED 漂亮的提示信息效果代码
Sep 12 Javascript
js confirm()方法的使用方法实例
Jul 13 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
浅谈Node.js:fs文件系统模块
Dec 08 Javascript
JS实现给json数组动态赋值的方法示例
Mar 19 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
javascript中数组的常用算法深入分析
Mar 12 Javascript
vue中在vuex的actions中请求数据实例
Nov 08 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
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
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
2013/12/03 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
javascript 字符 Escape,encodeURI,encodeURIComponent
2009/07/09 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
详解Nuxt.js Vue服务端渲染摸索
2018/02/08 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
搭建vue开发环境
2018/07/19 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
深入理解Python中各种方法的运作原理
2015/06/15 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
利用Python实现kNN算法的代码
2019/08/16 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
生日邀请函范文
2014/01/13 职场文书
工作求职信
2014/07/04 职场文书
年检委托书
2014/08/30 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
解决Oracle数据库用户密码过期
2022/05/11 Oracle