解决jquery操作checkbox火狐下第二次无法勾选问题
更新时间:2014年02月10日 11:45:54 投稿:whsnow
在工作中使用jquery操作checkbox,进行全选、反选,现在的问题是火狐下第二次无法勾选问题,在下面有个详细的解答,感兴趣的朋友可以参考下
最近在工作中使用jquery操作checkbox,使用下面方法进行全选、反选:
复制代码 代码如下:
var ischecked=allCheckObj.is(':checked');
ischecked?checksObj.attr('checked',true):checksObj.attr('checked',false);
调试时在ie没有问题,考虑到兼容性,试试了firefox,遇到了问题。于是乎,做了如下实验:
复选框绑定了click事件,点一次选中,再点击取消选中,依次类推。这个功能在ie中没问题,但是在firefox中测试的时候,前两次都没有问题,可以正常显示选中和取消,但当再去选中的时候,复选框的属性checkbox值变为"checked",没问题,但是复选框却不在显示选中状态,明明属性值改了,但是却不显示勾选,太诡异了。代码修改了却得不到正确的显示状态,纠结了很久,找不到原因。
正解:后来经偶像指点,原来是jQuery版本问题。操作属性用的是
$("**").attr("attrName");而jQuery的版本用的是1.9,这就是存在一个兼容性和稳定性问题。
jQuery API明确说明,1.6+的jQuery要用prop,尤其是checkBox的checked的属性的判断,即
复制代码 代码如下:
$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").prop("disabled", false);
$("input[type='checkbox']").prop("checked", true);
在使用是将attr改为prop,问题得解。
你遇到这个奇怪的问题了吗?赶紧试试吧
相关文章
Bootstrap嵌入jqGrid,使你的table牛逼起来
这篇文章主要介绍了Bootstrap嵌入jqGrid,使你的table牛逼起来,需要的朋友可以参考下2016-05-05
JQuery触发radio或checkbox的change事件
在JQuery中,当给radio或checkbox添加一个change事件时,如果它的值发生变化就会触发change事件;本文将详细介绍如何利用JQuery触发Checkbox的change事件需要了解的朋友可以参考下2012-12-12
Jquery如何使用animation动画效果改变背景色的代码
这篇文章主要介绍了Jquery如何使用animation动画效果改变背景色,需要的朋友可以参考下2020-07-07
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
很多人熟悉使用锚链接跳转到的页面部分的解决方案,这种效果当需要列出很长的数据集时,是非常实用的,然而页面跳转对于游客来说有时候并不是好友好,弊端我就不多说了,祥看下本文2013-02-02


最新评论