如何在 jquery 中根据特定的父项在多个复选框中仅选中一个复选框

  • 本文关键字:复选框 一个 jquery java jquery html
  • 更新时间 :
  • 英文 :


在这里,我有许多结构像父子的checkboxes。这里我只能根据父级选中一个复选框,假设Parent1我在选中Child12时再次选中Child11Child11应该取消选中类似于单选按钮。

同样的事情应该发生在Parent2,但是如果我check/uncheckParent2中的任何孩子,parent1的孩子不应该被打扰。

任何人都可以帮我,这是下面的代码

.HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<div class="details">
<ul>
<li>Parent1</li>
<li>
<ul>
<li><input type="checkbox"><span>Child11</span></li>
<li><input type="checkbox"><span>Child12</span></li>
</ul>
</li>
</ul>
<ul>
<li>Parent2</li>
<li>
<ul>
<li><input type="checkbox"><span>Child21</span></li>
<li><input type="checkbox"><span>Child22</span></li>
<li><input type="checkbox"><span>Child23</span></li>
</ul>
</li>
</ul>
</div>

.CSS

ul li{
list-style-type:none;
}

$(".p1chb").change(function()
{
$(".p1chb").prop('checked',false);
$(this).prop('checked',true);
});

///above for parent 1, below for parent 2.
$(".p2chb").change(function()
{
$(".p2chb").prop('checked',false);
$(this).prop('checked',true);
});
ul li{
list-style-type:none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<div class="details">
<ul>
<li>Parent1</li>
<li>
<ul>
<li><input type="checkbox" id="Child11" name="Parent1" value="Child11" class="p1chb"
checked>
<label for="Child11">Child11</li>
<li><input type="checkbox" id="Child12" name="Parent1" value="Child12" class="p1chb"
unchecked>
<label for="Child12">Child12</label></li>
</ul>
</li>
</ul>
<ul>
<li>Parent2</li>
<li>
<ul>
<li><input type="checkbox" id="Child21" name="Parent2" value="Child21" class="p2chb"
checked>
<label for="Child21">Child21</label></li>
<li><input type="checkbox" id="Child22" name="Parent2" value="Child22" class="p2chb"
unchecked>
<label for="Child21">Child22</label></li>
<li><input type="checkbox" id="Child23" name="Parent2" value="Child23" class="p2chb"
unchecked>
<label for="Child23">Child23</label></li>
</ul>
</li>
</ul>
</div>
<div>

相关内容

最新更新