XTUxiaoxin 2015-04-20
今天在修改easyui源码的时候碰到一个特别奇葩的问题,我们在easyui的combobox控件中添加了一个checkbox,当点击下拉框的一条记录的时候就选中checkbox,按以往的经验,用$("input[type='checkbox']").attr("checked","checked"),but,这次居然不好使了,在调试时看到html中该控件确实有checked属性。我就晕了,怎么会这样。然后去查jquery的帮助文档,发现了这个方法:prop()。
附上官方说明:
获取在匹配的元素集中的第一个元素的属性值。
随着一些内置属性的DOM元素或window对象,如果试图将删除该属性,浏览器可能会产生错误。jQuery第一次分配undefined值的属性,而忽略了浏览器生成的任何错误。
官方实例里给的也是处理checkbox的checked属性:
参数key,value描述:
禁用和选中所有页面上的复选框。
jQuery代码:
$("input[type='checkbox']").prop("disabled",false);
$("input[type='checkbox']").prop("checked",true);
试了一下,果然好使,应该是在修改checkbox属性的过程中出现了某种错误,但是浏览器又没有报错,深层原因暂时还没有研究,如果有高人的话希望能给说明下,在此谢过。