Jquery 和关于 复选框 的问题

最近做一个项目,我把自己模块做好调试了已经没问题了。
但当我把我的代码放到公司框架里发现点击复选框根本不会触发事件。
仔细研究了一下原来是checkbox 的check属性惹得祸。
1. 如果在页面定义如下复选框<input type="checkbox"  />,只要写了checkbox 属性不管为什么值,  在页面复选框的是选中状态。
<input type="checkbox"   checked="false"/> ,<input type="checkbox"   checked="true"/> ,<input type="checkbox"   checked="checked"/> 或者直接写上<input type="checkbox" checked>
得到的属性值都为checked。
html 代码为:

<div id="hostAndAppToChooseDivAll">
<label id="labChooseAll">
<input type="checkbox" name="CheckboxGroup" value=""id="chbChooseAll" checked />
所有</label>
<%if(entityDao.isHasCategorizedEntity()){ %>checked
<input type="button" title="" value="取消分组显示" id="btncancelGroup" />
<%} %>
</div>
js代码为:
$(document).ready(function() {
			alert("chbChooseAll:checked:-"+$('#chbChooseAll').attr('checked'));
			$("[type='checkbox']").attr("checked",false);
});
效果为:

看到没打印结果为checked 不管你设 checked 值为“false” “checked”。
所以判断选中就用"checked"==jqueryObj.attr("checked")和0==jqueryObj.attr("checked").length。最近经理把jquery 改成版本 1.6 了。1.在jquery 1.6 下,可以用 .is(":checked") 判断是否选中。2.jquery 目前在处理 $(this).attr("checked",true); 有时会出现问题。
如下图:

bug 描述(firefox 不正常,IE 正常): 1.当点击第一次正常。 2.如果多次点的话出现bug,如果上图 主机: hostMan  应用:hostMan 选中 所有那里的checkbox 应该选中。
调试了很久也没解决。
bug 解决办法:
发现原来是$(this).attr("checked",true); 的问题。改成直接用DOM操作就可以了this.checked = true;
改后效果如下正常了。

总结:大胆尝试。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值