Jquery 和关于 复选框 的问题
2011-08-28 14:38
330 查看
最近做一个项目,我把自己模块做好调试了已经没问题了。
但当我把我的代码放到公司框架里发现点击复选框根本不会触发事件。
仔细研究了一下原来是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 代码为:
看到没打印结果为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;
改后效果如下正常了。
总结:大胆尝试。
但当我把我的代码放到公司框架里发现点击复选框根本不会触发事件。
仔细研究了一下原来是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;
改后效果如下正常了。
总结:大胆尝试。
相关文章推荐
- 关于jQuery操作复选框checkbox的attr无效的问题的解决方案
- 关于引入jQuery文件和使用jQuery取同胞兄弟的值问题
- 关于jQuery中.attr()和.prop()的问题探讨
- [MVC] 关于jquery调用PartialView局部刷新的问题
- 关于给winform的DataGrid中添加复选框的问题
- 关于juqery radio写法的兼容性问题(新老版本jquery)
- 关于jquery 开发的几个问题
- jquery关于cookie传值问题
- 关于jQuery的$.getJSON乱码问题
- 关于jquery获取input的value问题
- jquery关于表格隐藏和显示问题
- 基于jquery的关于动态创建DOM元素的问题
- 关于jquery插件冲突的问题。
- 关于jquery控制select下拉框自动展开问题
- 关于layui(layer)子页面获取不到父页面jQuery对象的问题。
- 关于页面元素绑定jquery中的toggle后,元素隐藏的问题
- 关于js(jquery)获取页面高度宽度问题
- 关于执行ajax后页面局部刷新,无法执行jQuery问题
- 关于jquery-easyui select获取到的select 的value是null的问题
- 关于 jQuery blockUI 的一点小问题(二)