禁用复选框并使用jQuery取消选中它

时间:2014-01-14 08:01:04

标签: javascript html jquery checkbox

在下面的代码中,我在for循环中动态生成td元素。

jQuery("#dialog_load_content").load(url, function() {
        var clientName = jQuery('#client option:selected').text();
        var clientId = Number(jQuery('#client option').filter(function() {return jQuery(this).html() == clientName;}).val());
        var navDate = jQuery('input:checkbox:checked.signOff').closest('tr').find('td:eq(2)').html();
        var fundName = jQuery('input:checkbox:checked.signOff').closest('tr').find('td:eq(0)').html();
        var fundId = Number(jQuery('#fund option').filter(function() {return jQuery(this).html() == fundName;}).val());
        jQuery.post('getNavPackReportsStatus', {clientId: clientId, fundId: fundId, periodEndDate: navDate}, function(data) {
            var reports = data;

            for(var count = 0; count< reports.length; count++) {
                jQuery('#wrkbkRptTable tbody').append('<tr>' +
                        '<td><input type="checkbox" id="'+reports[count].reportStoreId+'" name="'+reports[count].reportName+'" checked/></td>'+
                        '<td>' + (count + 1) + '</td>'+
                        '<td>' + reports[count].reportGroupDisplayName + '</td>'+
                        '<td>' + reports[count].reportName + '</td>'+
                        '<td id="chkReportID">' + ((reports[count].reportStoreId == null || reports[count].reportStoreId == '') ? '<font color="red">Not Available</font>' : '<font color="green">Available</font>') + '</td>'+
                        '</tr>');
            }


        });

    });

我尝试禁用复选框并取消选中此复选框,但它无法正常工作

 jQuery('#wrkbkRptTable input:checked').each(function() {
     var test=jQuery('#wrkbkRptTable input:checked').attr('id');
    if(test==null || test=='' || test=='undefined')
    {
         alert(test);
         jQuery("#"+test+"").prop( "disabled", true );
    }

});    

我想禁用复选框并使用第一个td(id属性值)取消选中它 这个:if(id == null然后禁用&取消选中它)

5 个答案:

答案 0 :(得分:1)

试试这个

jQuery.each( jQuery('#wrkbkRptTable input:checked'), function(_, item) {
  var item = jQuery(item);
  var id = item.attr('id');
  if (typeof id == 'undefined') {
    item.attr('checked', false);
    item.attr('disabled', true);
  }
} )

此代码将收到所有选中的复选框。然后它将测试项目的ID是否存在。如果没有,它将取消选中当前复选框并禁用它。

答案 1 :(得分:0)

使用firebug aor chrome调试器调试此项。禁用复选框的代码是正确的。

答案 2 :(得分:0)

我猜if中的条件不太合适

if(test==null || test=='' || test=='undefined')
{
    // means not got test 
}

试试这个

if(test)
{
    // ur codes 
}

答案 3 :(得分:0)

 jQuery('#wrkbkRptTable input:checked').each(function() {
 var test=jQuery(this).attr('id');
  if(!test)
    {
      alert(test);
      jQuery(this).prop( "disabled", true );
     }

  });

答案 4 :(得分:0)

尝试这样的事情

$(document).ready(function() {
     jQuery('#wrkbkRptTable input:checked').each(function() {
        var test = this.id;
        if(test==null || test=='undefined' || test.trim()=='')
        {
             this.checked = false;
             this.disabled = true;
        }
    });
});