在用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);

};
原文地址:https://www.cnblogs.com/sdgtxuyong/p/12090213.html