码迷,mamicode.com
首页 > 其他好文 > 详细

checkbox的checked属性问题

时间:2015-09-23 21:23:25      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:

在设置checked时,如

$("#checkbox").attr("checked",true);

页面显示checked属性已添加,但是未被选中(没打勾),

在如下代码中没有问题:

function tree_item_checked(cl,type){
    if($("#item_"+cl).is(":checked")) {
        $("input[key=‘tree_item_checkbox‘]").each(function(){
            if($.trim($(this).attr("id"))!=("item_"+cl)){
                $(this).attr("checked",false);
            }
        });
        $("#superNode").val(cl);
    } else{
        $("#superNode").val("");
    }
}

这里只设置取消选中,运行正常。

如果需要通过点击按钮或者超链接刷新checkbox选中状态,如下:

function(rowId, status, e){
    if (!$("#item_"+rowId).is(":checked")){
        $("#item_"+rowId).attr("checked",true);
        $("#superNode").val(rowId);
        $("input[key=‘tree_item_checkbox‘]").each(function(){
            if($.trim($(this).attr("id"))!=("item_"+rowId) &&
                    typeof($("#item_"+rowId).attr("checked"))!="undefined"){
                $(this).attr("checked",false);
            }
        });
    } else {
        $("#superNode").val("");
        $("#item_"+rowId).attr("checked",false);
    }
}

会产生无法选中的问题。这里将attr改为prop方法运行正确:

function(rowId, status, e){
    if (!$("#item_"+rowId).is(":checked")){
        $("#item_"+rowId).prop("checked",true);
        $("#superNode").val(rowId);
        $("input[key=‘tree_item_checkbox‘]").each(function(){
            if($.trim($(this).attr("id"))!=("item_"+rowId) &&
                    typeof($("#item_"+rowId).attr("checked"))!="undefined"){
                $(this).prop("checked",false);
            }
        });
    } else {
        $("#superNode").val("");
        $("#item_"+rowId).prop("checked",false);
    }
}

该方法是jquery1.6新增,建议使用prop方法给属性赋值。


笔记,备忘

checkbox的checked属性问题

标签:

原文地址:http://my.oschina.net/u/2284472/blog/510345

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!