在用ajax做checkbox控件时,取值异常
不能用attr取值,否则有刷新问题,取值异常,必须用prop取值。
$.ajax({ url:"${pageContext.request.contextPath}/getAdmin/"+$(this).attr("edit_id"), type:"GET", success:function(result){ $("#name").text(result.name); $("#email").val(result.email); $("#role.id").val(result.role.id); $("#lockFlag").prop("checked",result.lockFlag); //关键代码 console.log($("#lockFlag").prop('checked')) ; $("#btn_modify").attr("edit_id",result.id); } })
参考文献,如下:
给每个checkbox一个name属值,然后再判断value是不是为true,为true就改变状态。这里要用prop的方式添加,不能使用attr(具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr(),再jQuery1.9版本中使用attr获取checkbox的值都是undefined,在1.8.3版本中结果是 checked 和 undefined)。
我在这的做法是先把table表格循环出来,再改变状态,使用如下代码
if(da.P1[i].aa==true){ $(":checkbox[name='check"+i+"']").prop("checked",true); }; if(da.P1[i].bb==true){ $(":checkbox[name='checks"+i+"']").prop("checked",true); };