【问题标题】:Dynamic List Checkbox issue动态列表复选框问题
【发布时间】:2014-02-10 12:20:50
【问题描述】:

我的代码可以在这里找到JSFIDDLE

我对列表中的动态复选框选择有疑问。 如果我检查parent1 checkbox,则应该只检查parent 1 的孩子。

如果我检查Parent1, Category 1.1, Category 1.2, Category 1.3 应该只检查, 如果我取消选中 Parent 1, the childrens 也将被取消选中。

由于这些值来自 foreach 循环中的数据库,我在下面的代码中引用了这些值。

这是我的代码。

<div class="middle-right">
        <ul class="mid-right-list">
            <?php   
                foreach($pntrs AS $ps)
                {
                $catrs=$media->Catgselectn($ps['parent_id'],'sales_catmgmt');
            ?>

            <li><b>+ <?php echo $ps['parent_name'];?></b>

            <?php
                foreach($catrs AS $cg)
                {
            ?>
            <ul>
                <li><input type="checkbox" class="checkbox1" name="catg[]" value="<?php echo $cg['cat_id']; ?>"><?php echo $cg['cat_name']; ?></li>
            </ul>
            <? } ?>
              </li> 
             <?php
            }
            ?>
        </ul>
    </div>

【问题讨论】:

  • 你有没有试过给 ul 添加单独的 id/classes,所以你可以用 jQuery 改变复选框的状态?
  • 在父复选框上写一个触发器,然后选中父复选框,然后您可以检查位于该父项下的所有子项。
  • 嗨苏尔曼。我试过了。但是在编码方面几乎没有问题。是否可以提供代码。谢谢。
  • 尝试为每个输入添加一个 onchange 属性,并在该函数中将子项设置为选中
  • 嗨 Justinas Jurciukonis .. 不,你能建议我怎么做。谢谢。

标签: javascript php mysql list


【解决方案1】:

这里是 Jquery 解决方案。你可以使用jquery。 JsFriddle

$(function () {
    $("input[type='checkbox']").change(function () {
        $(this).siblings('ul')
            .find("input[type='checkbox']")
            .prop('checked', this.checked);
    });
});

【讨论】:

  • 不客气。如果您认为它有帮助,那么您可以标记为答案。
【解决方案2】:

一种方法 - 您可以为包含不同属性的父 ID 编写一个 jquery 触发器。然后选中哪个父复选框,找到那个id然后相应地标记那些子复选框。

触发器示例:-

$(document).ready(function() {
   $('body').delegate('.parent_class_of_checkbox', 'click', function(evt) {
        // here mark checked to child checkbox.
    });
});

【讨论】:

    猜你喜欢
    • 2013-10-25
    • 2021-12-03
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    相关资源
    最近更新 更多