你的位置:首页 > Java教程

[Java教程]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/