Jquery 获取checkbox的checked问题

来源:互联网 发布:河北盘古网络待遇 编辑:程序博客网 时间:2024/06/08 06:39

Jquery 获取checkbox的checked问题

事实胜于雄辩,发现网上的说法和自己以前的理解都是错的,不知道大家有没发现.

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

转别人的一些东西:

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"
原文地址:http://www.cnblogs.com/-run/archive/2011/11/16/2251250.html
0 0