如何选中和取消选中所有复选框

时间:2018-08-21 20:50:38

标签: javascript html

我的代码有问题。我试图单击该按钮以选中所有复选框,但没有任何反应。

这是我的代码。

<body>
<html>

<input type="checkbox" id="chk_boxes1" name="chk_boxes1" class="delete_customer"  value="<?php echo $rowTrackers['id']; ?>" />
<br>

<input type="checkbox" id="chk_boxes1" name="chk_boxes1" class="delete_customer"  value="<?php echo $rowTrackers['id']; ?>" />
<br>


<input type="checkbox" id="chk_boxes1" name="chk_boxes1" class="delete_customer"  value="<?php echo $rowTrackers['id']; ?>" />
<br>

<button type="button" name="btn_checkall" id="btn_checkall">Check all</button>

</html>
</body>


<script>
$(document).ready(function(){

 $('#btn_checkall').click(function(){
    if($(this).prop('checked')){
      $('.chk_boxes1').prop('checked', true);
    }else{
      $('.chk_boxes1').prop('checked', false);
    }
 });


});
</script>

我不知道麻烦来自哪里,但是我想这与id,名称或其他使它停止工作的东西有关。

当我单击代码使用的按钮时,能否请您显示可用于检查和取消选中所有复选框的正确代码?

3 个答案:

答案 0 :(得分:2)

要纠正的一件事是,您的html标签后面有html标签。 html标记肯定应该是父标记。

除此之外,您似乎已将“ chk_boxes1”分配给了ID而不是类。如果将它们更改为类,则应该可以正常工作:

false

此外,您还在按按钮来确定已检查状态。这也将使代码不起作用。如果您想更改状态,则可以在按钮上添加和删除类,也可以执行以下操作来检查复选框组:

<input type="checkbox" name="chk_boxes1" class="delete_customer chk_boxes1"  value="<?php echo $rowTrackers['id']; ?>" />
<br>
<input type="checkbox" name="chk_boxes1" class="delete_customer chk_boxes1"  value="<?php echo $rowTrackers['id']; ?>" />
<br>
<input type="checkbox" name="chk_boxes1" class="delete_customer chk_boxes1"  value="<?php echo $rowTrackers['id']; ?>" />
<br>

答案 1 :(得分:1)

您那里出了很多问题。

首先,您的HTML标记顺序错误。您的文档应以<html>开头,并以</html>结尾:

因此,将文档更改为这样:

<html>
    <body>
        // your content
    </body>
</html>

您还希望将脚本包括在<body>的底部,或者,当您正在侦听DOM就绪事件时,请将脚本包括在<head>中。因此,将<script>的位置调整到此处:

<html>
    <body>
        // your content
        <script>
            // script here
        </script>
    </body>
</html>

对于主要问题,我建议进行以下更改:

HTML:

删除重复的ID。 ID对于每个元素而言都是唯一的。

<input type="checkbox" name="chk_boxes1" class="delete_customer"  value="<?php echo $rowTrackers['id']; ?>" />
<br>
<input type="checkbox" name="chk_boxes1" class="delete_customer"  value="<?php echo $rowTrackers['id']; ?>" />
<br>
<input type="checkbox" name="chk_boxes1" class="delete_customer"  value="<?php echo $rowTrackers['id']; ?>" />
<br>

jQuery:

通过名称而不是ID选中复选框:

$(document).ready(function() {
    $('#btn_checkall').click(function(){
        var $chk_boxes = $('input[name="chk_boxes1"]');
        if($chk_boxes.prop('checked')) {
            $chk_boxes.prop('checked', true);
        } else {
            $chk_boxes.prop('checked', false);
        }
    });
});

答案 2 :(得分:0)

正如人们所说,id应该是唯一的:

$(document).ready(function(){

 //Use JQuery .on to attach event handler
 $('#btn_checkall').on('click', function(){
     //Get all checkboxes by class
     const $checkboxes = $('.delete_customer');
     //Use .each to iterate the checkboxes
     $checkboxes.each(function(){
         $(this).prop('checked', true);
     }); 
 });


});