Jquery 获取checkbox的checked问题

时间:2021-05-26

注意: 操作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上没有显示出来

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章