checkbox的checked屬性問題

在設置checked時,如jquery

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

頁面顯示checked屬性已添加,可是未被選中(沒打勾),
this

在以下代碼中沒有問題:code

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("");
    }
}

這裏只設置取消選中,運行正常。input

若是須要經過點擊按鈕或者超連接刷新checkbox選中狀態,以下:it

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方法運行正確:io

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方法給屬性賦值。function


筆記,備忘方法

相關文章
相關標籤/搜索