如果未选中复选框,请执行某些操作

时间:2012-11-01 16:42:34

标签: jquery

在解决这个问题时遇到一些麻烦。如果取消选中第二个和第三个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);
  }
});

2 个答案:

答案 0 :(得分: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 use中的特定用途

$('#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);
  }
});

答案 1 :(得分: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);
    }
});