Jquery 获取checkbox的checked问题
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 397
这个郁闷了,今天写这个功能的时候发现了问题,上网找了好多资料对照,更加纠结。。。事实证明一切,自己测试了N遍,发现网上的说法和自己以前的理解都是错的,不知道大家有没发现.下面来看看网上大多资料的说法

这个郁闷了,今天写这个功能的时候发现了问题,上网找了好多资料对照,更加纠结。。。

事实证明一切,自己测试了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遍,自己测试证明一下

多谢大家的帮助,终于知道了原因,原来是Jquery版本的问题 jquery.1.6之后的版本,就出现这样的问题。果然是知识跟不上更新的速度!!

这里可以看一下官方prop()的说明,和attr的变化

或者从我的新文章了解 Jquery1.6版本后attr的变化,灰常委屈

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2