javascript - 一次仅选择一个复选框

标签 javascript jquery

我使用引导列表组创建了此列表类型菜单。我想一次只激活一个主要类别。因此,虽然选择了“主类别一”,但现在如果我单击其他类别,“主类别一”将被取消选择,而“主类别二”将被激活。

在提问之前我尝试了一些解决方案,但还没有弄清楚。该列表大约有 15 个主要类别,我只在这里放了两个类别的代码,因为否则代码会更长。希望有人能帮忙。谢谢。

enter image description here

HTML

<a class="list-group-item list-sub-group-item list-group-item-action">
    <div class="custom-control custom-checkbox">
        <input type="checkbox" value='mcat1' id="mcat1" class="custom-control-input">
        <label class="custom-control-label" for="mcat1">Main Category One</label>
    </div>
</a>

<div class="list-group-submenu">
    <a class="list-group-item list-group-item-action pl-5">
        <div class="custom-control custom-checkbox">
            <input type="checkbox" value='item1' id="item1" class="custom-control-input">
            <label class="custom-control-label" for="item1">Item</label>
        </div>
    </a>
</div>

<a class="list-group-item list-sub-group-item list-group-item-action">
    <div class="custom-control custom-checkbox">
        <input type="checkbox" value='mcat2' id="mcat2" class="custom-control-input">
        <label class="custom-control-label" for="mcat2">Main Category Two</label>
    </div>
</a>

<div class="list-group-submenu">
    <a class="list-group-item list-group-item-action pl-5">
        <div class="custom-control custom-checkbox">
            <input type="checkbox" value='item1' id="item1" class="custom-control-input">
            <label class="custom-control-label" for="item1">Item</label>
        </div>
    </a>
</div>

最佳答案

下面是一个关于如何完成此操作的简单示例。我建议在查找父容器中选中的复选框时更加具体。我刚刚对此示例进行了全局查找。

$('.custom-control-input:checkbox').on('change', function(e){
    $('.list-group .custom-control-input').prop('checked', false);
    $(this).prop('checked', true);
})
<link href="https://getbootstrap.com/docs/4.4/dist/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="list-group">
  <li class="list-group-item">
    <a>
      <div class="custom-control custom-checkbox">
        <input type="checkbox" class="custom-control-input" id="customCheck1">
        <label class="custom-control-label" for="customCheck1">Check this custom checkbox</label>
      </div>
    </a>
    <ul class="list-group">
      <li class="list-group-item">
        <a>
          <div class="custom-control custom-checkbox">
            <input type="checkbox" class="custom-control-input" id="customCheck2">
            <label class="custom-control-label" for="customCheck2">Check this custom checkbox</label>
          </div>
        </a>
      </li>

    </ul>
  </li>
  <li class="list-group-item">
    <a>
      <div class="custom-control custom-checkbox">
        <input type="checkbox" class="custom-control-input" id="customCheck3">
        <label class="custom-control-label" for="customCheck3">Check this custom checkbox</label>
      </div>
    </a>
    <ul class="list-group">
      <li class="list-group-item">
        <a>
          <div class="custom-control custom-checkbox">
            <input type="checkbox" class="custom-control-input" id="customCheck4">
            <label class="custom-control-label" for="customCheck4">Check this custom checkbox</label>
          </div>
        </a>
      </li>

    </ul>
  </li>
  
</ul>

关于javascript - 一次仅选择一个复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61445665/

相关文章:

javascript - 在javascript中,是否有一个事件来检查变量名是否刚刚创建?

jquery - jquery 中的图像 native 宽度

php - Jquery插入两次到mysql

javascript - 如何为彼此增值?

javascript - 如何将页面上的多个 j 查询脚本合并为一个?

javascript - 在没有自动调整的情况下将我的图像 slider 定位在屏幕上

javascript - 从字符串中删除回车符和空格

javascript - 如何使用 jQuery 访问函数内属于另一个函数的对象的属性?

javascript - 在 Javascript 中修改 ArrayList 会导致 Camunda 中的序列化失败

javascript - Firebase Javascript 在运行函数之前检查存储是否存在