jquery 获取 checkbox 的 checked 状态问题

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

事实证明一切,自己测试了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"  这让人费解(原因:Jquery版本的问题, jquery.1.6之后的版本,就出现这样的问题)~~

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

转载:http://www.cnblogs.com/-run/archive/2011/11/16/2251250.html

原文地址:https://www.cnblogs.com/ostrich-sunshine/p/8442585.html

时间: 2024-08-27 07:09:48

jquery 获取 checkbox 的 checked 状态问题的相关文章

Jquery获取checkbox属性checked为undefined

说明:本文来自新浪博客,因为无法收藏,故直接copy过来备注,以后好查询 原网址:http://blog.sina.com.cn/s/blog_6810dfc20101jddq.html 使用jQuery v1.10.2获取checkbox的状态时,用.attr("checked")时输出总是为undefined.郁闷了,这难道是个bug?! 查看jQuery API的文档,发现: As of jQuery 1.6, the .attr() method returns undefin

点击tr实现选择checkbox功能,点击checkobx的时候阻止冒泡事件, jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态

给tr添加点击事件,使用find方法查找tr下的所有层级的元素,children只查找下一层级的元素,所以使用find.find的返回值为jquery对象,在这个项目中不知道为什么使用jquery给checkbox添加checked属性或去掉checked属性不能使checkobx改变状态,所以我就把jquery对象转换为DOM对象,怎么转呢?jquery对象[0]或者get(0)就转换成DOM对象,然后直接.checked返回true或false就可以判断checkbox是否选中了.然后判断状

jquery获取checkbox被选中的值

只用一个循环,就可以找出被选中的checkbox的值 var s; $("[name = b]:checkbox").each(function () {                   if (this.checked) {                       s += $(this).val() + "|";                   }               });alert(s); 这样就可以了 jquery获取checkbox被

jQuery获取checkbox选中的值

1.问题背景 有几个多选框,选择其中的几个,获取选中的值 2.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>

jquery 设置checkbox的checked属性 总是出问题

所使用的jquery版本为jquery-1.9.1,浏览器为Chrome 1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase <input type="checkbox" id="selectAll" onclick="checkAll()">全选 function checkAll() {   var checkedOfAll=$("#selectAll

jquery-1.10.2 获取checkbox的checked属性总是undefined

项目中用的jquery-1.10.2 需要检测一个checkbox的选中状态,想当然的用 .attr("checked") ,结果发现,无论是否选中,这个值都是 undefined 未定义. 查找资料,特此记录: jq官网说明: As of jQuery 1.6, the .attr() method returns undefined for attributes that have not been set. In addition, .attr() should not be u

jquery获取checkbox是否选中

在使用jquery的过程中,发现了一个比较特别的属性,那就是 input标签的 checkbox的 是否选中状态 在jquery 1.6 + 以后,checkbox的选中状态的获取不在是直接$(XXX).attr("checked"),而是prop(name|properties|key,value|fn) 具体事例: if($('input[name="iscknotrans"]').prop("checked")){ alert("

Jquery获取CheckBox、Select、radio的值

Jquery获取这三个控件的值不可以仅仅根据$("#控件ID")进行获取,以下是自己进行的简单的测试: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Control.aspx.cs" Inherits="Test.Control" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XH

jquery1.6+ 获取checkbox的checked属性总是undefined

项目中用的jquery1.10 今天需要检测一个checkbox的选中状态,想当然的用 .attr("checked") ,结果发现,无论是否选中,这个值都是 undefined 未定义. 原因:在jquery1.6版本便对此做出了修改: [checked属性在页面初始化的时候已经初始化好了,不会随着状态的改变而改变. 也就是说如果checkbox在页面加载完毕是选中的,那么返回的永远都是checked(我的一开始就是没选中) 如果一开始没被选中,则返回的永远是undefined !]