选中复选框时,删除按钮可见

时间:2018-02-21 14:52:22

标签: javascript jquery html button checkbox

我有3列的表格。第三列是每行的复选框。

<tr id='sub".$this->getHtmlId()."_".$cpt."' class='mui-row'>
  <td class='mui-col-md-6'>".$row[0]."</td>
  <td class='mui-col-md-2'>".$row[1]."</td>
  <td class='mui-col-md-2' style='border:none'>
    <component id='box' class=\ "CheckBoxComponent\" name=\ "chk".$row[3]. "\" />
  </td>
</tr>";

我想要的是当我选中一个复选框时,删除按钮变为可见,如果我检查一秒钟或更长时间,它会保持可见,因为我可以同时删除多行。

现在,我尝试的所有内容都是这样做的,当我检查一行按钮出现时我点击第二个它消失了,当我点击第三个它再次出现时

这里有一些我尝试的例子:

$('#deleteButton').toggle('slow', function() {
  // Animation complete.
});

var chkbox = $(\".check\");
    button = $(\"#box\");
      button.attr(\"disabled\",\"disabled\");
        chkbox.change(function() {
            if (this.checked) {
              button.removeAttr(\"disabled\");
              }
              else {
                button.attr(\"disabled\",\"disabled\");
                }
              });

1 个答案:

答案 0 :(得分:1)

您可以按$(".check:checked").length

获取已选中复选框的计数

如果选中复选框,则显示按钮。

$(function() {
  //hide on init
  $("#deleteButton").hide();

  $(".check").click(function() {
    //get the number of checked 
    if ($(".check:checked").length) $("#deleteButton").show();
    else $("#deleteButton").hide();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr class='mui-row'>
    <td class='mui-col-md-6'>1</td>
    <td class='mui-col-md-2'>1</td>
    <td class='mui-col-md-2' style='border:none'>
      <input type="checkbox" class="check">
    </td>
  </tr>
  <tr class='mui-row'>
    <td class='mui-col-md-6'>2</td>
    <td class='mui-col-md-2'>2</td>
    <td class='mui-col-md-2' style='border:none'>
      <input type="checkbox" class="check">
    </td>
  </tr>
  <tr class='mui-row'>
    <td class='mui-col-md-6'>3</td>
    <td class='mui-col-md-2'>3</td>
    <td class='mui-col-md-2' style='border:none'>
      <input type="checkbox" class="check">
    </td>
  </tr>
</table>

<button id="deleteButton" type="button">Delete!</button>