爱程序网

jQuery无法设置checkbox复选框选中原因解析

来源: 阅读:

jQuery无法设置checkbox复选框选中原因解析:
很多编码者可能遇到这样的奇怪情况,那就是使用jQuery设置checkbox复选框选中状态的时候出现无效现象,尽管代码没有任何错误,下面就介绍一下为什么会出现此种现象,和解决此问题的方式,希望能够给需要的朋友带来帮助。
先来看一个代码实例:

 

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<script type="text/javascript" src="mytest/demo/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("#selectall").click(function(){
    $('input[type=checkbox]').attr("checked","checked")
  })
  $("#cancel").click(function(){
    $('input[type=checkbox]').attr('checked',false);
  })
})
</script>
</head>
<body>
<input type="checkbox" value="蚂蚁部落"/>蚂蚁部落一
<input type="checkbox" value="蚂蚁部落"/>蚂蚁部落二
<input type="button" id="selectall" value="全选"/>
<input type="button" id="cancel" value="取消"/>
</body>
</html>

 

在以上代码中,当第一次全选,然后再取消全选之后,再次点击全选,这个时候就会没有作用,这个在jQuery1.9之前是没有任何问题的,在IE8和IE8以下浏览器也没有问题,为了解决这个问题,代码修改如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<script type="text/javascript" src="mytest/demo/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("#selectall").click(function(){
    $('input[type=checkbox]').prop("checked","checked")
  })
  $("#cancel").click(function(){
    $('input[type=checkbox]').prop('checked',false);
  })
})
</script>
</head>
<body>
<input type="checkbox" value="蚂蚁部落"/>蚂蚁部落一
<input type="checkbox" value="蚂蚁部落"/>蚂蚁部落二
<input type="button" id="selectall" value="全选"/>
<input type="button" id="cancel" value="取消"/>
</body>
</html>

只要将attr()函数修改为prop()函数即可。主要原因主要是涉及到元素property和attribute属性的区别问题。
相关阅读:
1.property和attribute属性可以参阅js的property和attribute两种属性简单介绍一章节。 
2.浏览器兼容性问题可以参阅js的Attribue属性兼容性问题简单介绍一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=13046

更多内容可以参阅:http://www.softwhy.com/jquery/

 

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助