说说jquery修改复选框checked值后无法选中的问题

今天在修改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属性的过程中出现了某种错误,但是浏览器又没有报错,深层原因暂时还没有研究,如果有高人的话希望能给说明下,在此谢过。

相关推荐