2012-11-01 70 views
0

在解決此問題時遇到了一些麻煩。如果第二個和第三個td中的複選框都未選中,則禁用第四個中的複選框。如果沒有選中某個複選框,請執行某些操作

$('#allergies tbody tr').each(function() { 
    if ($('td:eq(1) input[type="checkbox"]:not(:checked)', $(this)).length > 0 
     && $('td:eq(2) input[type="checkbox"]:not(:checked)', $(this)).length > 0) { 
     $("td:eq(3) input", $(this)).attr('disabled', false); 
    } 
}); 
+0

具體的人是的,我是智障者並將false設置爲禁用而不是true。 – ediblecode

回答

1
$('#allergies tbody tr').each(function() { 
    if ($('td:eq(1) input[type="checkbox"]:not(:checked)').length > 0 
     && $('td:eq(2) input[type="checkbox"]:not(:checked)').length > 0) { 
     $("td:eq(3) input").prop('disabled', true); 
    } 
}); 

於TR使用

$('#allergies tbody tr').each(function() { 
    if ($('td:eq(1) input[type="checkbox"]:not(:checked)', $(this)).length > 0 
     && $('td:eq(2) input[type="checkbox"]:not(:checked)', $(this)).length > 0) { 
     $("td:eq(3) input", $(this)).prop('disabled', true); 
    } 
}); 
0

你的邏輯是正確的,但不易閱讀.. 它們分開成小塊

$('#allergies tbody tr').each(function() { 
    var $this = $(this); 
    var chk1 = $this.find('td:eq(1) input[type="checkbox"]').is(':checked'); 
    var chk2 = $this.find('td:eq(2) input[type="checkbox"]').is(':checked'); 

    // If both are false then disable else 
    // enable them 
    if(chk1 === false && chk2 === false){ 
     $this.find('td:eq(3) input').prop('disabled', true); 
    } 
    else{ 
     $this.find('td:eq(3) input').prop('disabled', false); 
    } 
}); 
相關問題