0

我在一个循环中有一个复选框,我想使用 jquery 选中所有并取消选中所有。我已经实现了一个 Jquery 检查所有并取消选中所有功能,但是,它只在检查了 checkall 标记的复选框后才检查循环中的第一个复选框。我将如何正确实现这一点?代码如下所示。谢谢。

看法:

<div><input type="checkbox" class="check_all"> Check all</div>
  <?php
      $cnt=0;
   echo form_open('students/del_student/'.$tennant_id);
    foreach($data_student as $row)
    {
      $cnt++;
      echo"<input type='hidden' name='course_occasion_id'   value=".$row->course_occasion_id.">";
      ?>
       <address>

     <div class="row-fluid">
      <div class="span2"><input type='checkbox' name='student_id[]'id="student_id" value="<?php echo $row->id;?>"  ></div>
      <div class="span4"><?php echo anchor("students/student/$row->id/$tennant_id",$row->first_name);?></div>
      <div class="span4"><?php echo $row->last_name;?> </div>
      <div class="span2"><?php echo $row->status;?> </div>
     </div>
     </address>
    <?php
     }
     ?>

Javascript:

 <script type="text/javascript">

   $('.check_all').on('click', function () {


    $("#student_id").prop('checked', $(this).prop('checked'));


   });
  </script>

输出:

在此处输入图像描述

4

4 回答 4

3

您正在创建具有相同 ID 的每个复选框:

id="student_id"

ID 在整个页面中应该是唯一的。

相反,将其更改为一个类,例如class="student_id"并更改您的选择器以查找该类:

$(".student_id").prop('checked', $(this).prop('checked'));
于 2013-07-15T08:49:51.367 回答
1

ids 在文档中必须是唯一的。

在 jQuery 中,#id使用而不是.class在 HTML 中使用,class=...而不是id=....

$(".student_id").prop('checked', $(this).prop('checked'));

看一下HTML和in的区别:idclass

  • id = name [CS]

    此属性为元素分配名称。此名称在文档中必须是唯一的。

  • class = cdata-list [CS]

    该属性将一个类名或一组类名分配给一个元素。可以为任意数量的元素分配相同的类名或名称。多个类名必须用空格字符分隔。

于 2013-07-15T08:50:06.490 回答
1

改为使用class..id因为是独一无二的

  $('.check_all').on('click', function () {

    $(".std").prop('checked', $(this).prop('checked'));

   });

和你的 html

<div class="span2"><input type='checkbox' name='student_id[]' class="std" value="<?php echo $row->id;?>"  ></div>
于 2013-07-15T08:51:37.077 回答
0

下面的 javascript 有助于检查取消选中循环中的所有复选框选项。

function FunCheckAll(obj) {            
if (obj.checked) {
    $('.chkSelectAll').each(function (i, e) {
        if ($(e).is(":not(:visible())") == false) {
            $(e).prop('checked', true);                        
        }
    });
}
else {
    $('.chkSelectAll').each(function (i, e) {
        $(e).prop('checked', false);                    
    });
}

}

chkSelectAll 是与复选框一起使用的类的名称。

于 2019-12-27T07:27:02.457 回答