firefox中 checkbox属性checked="checked"已有,但复选框却不显示打钩的原因
2015-07-29 10:42
351 查看
最近在调试复选框的应用,在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,问题得解。
原文:http://blog.sina.com.cn/s/blog_6657f20e0101g793.html
复选框绑定了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,问题得解。
原文:http://blog.sina.com.cn/s/blog_6657f20e0101g793.html
相关文章推荐
- MooseFS 系统简介
- IMX6DL 在Android4.4.2版本插入SD卡不能开机
- LeetCode题解——Remove Element
- jenkins原有邮箱的设置测试通过
- 一个最简单的java web项目的部署
- 使用Objective-C的文档生成工具:appledoc
- WPF 实现按钮的任意拖拽
- 终端趣味sl 编译出错(curses.h:没有那个文件或目录)解决
- Qt 5.3 下OpenCV 2.4.11 开发(2)摄像头采集
- 在开发过程中调试报表插件详细教程
- mysql实战之 批量update
- IOS XMPP引入时产生错误信息 “libxml/tree.h no such file or directory”
- FCC 新规可能禁止在 WiFi 路由器安装 OpenWRT
- SiteMesh在JSP中的页面装饰
- Rational Team Concert 的使用
- POJ 1276 Cash Machine 最多机器
- hdu 1010 Tempter of the Bone
- 开发服务器端时的框架选择
- PostgreSQL Concurrency with MVCC
- Foundation Framework 基本数据封装 NSNumber、NSValue、NSData