简体   繁体   English

只允许使用 jQuery 检查同一 div 中的复选框

[英]Allow Only Checkboxes in same div to be Checked using jQuery

I have 3 Divs, every div contains 2 inputs, I want to only check checkboxes in the same div with id and unchecked from other divs.我有 3 个 Div,每个 div 包含 2 个输入,我只想选中具有 id 的同一个 div 中的复选框,并且从其他 div 中取消选中。

HTML is : HTML是:

<div class="dashboard">

 <div id="fr">
  <h3>Fruits</h3>
  <label>
   <input type="checkbox" name="check1" />Kiwi</label>
  <label>
   <input type="checkbox" name="check2" />Jackfruit</label>
 </div>

 <div id="an">
  <h3>Animals</h3>
  <label>
   <input type="checkbox" name="check1" />Tiger</label>
  <label>
   <input type="checkbox" name="check2" />Sloth</label>
 </div>

 <div id="veg">
  <h3>vegetables</h3>
  <label>
   <input type="checkbox" name="check1" />Tiger</label>
  <label>
   <input type="checkbox" name="check2" />Sloth</label>
 </div>

</div>

and JQuery is :和 JQuery 是:

$("input:checkbox").on('click', function() {
 var $box = $(this);
 if ($box.is(":checked")) {
  var group = "input:checkbox[name='" + $box.attr("name") + "']";
  $(group).prop("checked", false);
  $box.prop("checked", true);
 } else {
 $box.prop("checked", false);
 }
});

see live example现场例子

If you only want to allow checkboxes to be checked within a single div , you can use jQuery to traverse the DOM using closest() , siblings() and find() to retrieve the external checkboxes before de-selecting them.如果您只想允许在单个div选中复选框,您可以使用 jQuery 遍历 DOM,使用closest()siblings()find()在取消选择它们之前检索外部复选框。

Try this:尝试这个:

 $("input:checkbox").on('change', e => { $(e.target).closest('div').siblings().find('input:checkbox').prop('checked', false); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="dashboard"> <div id="fr"> <h3>Fruits</h3> <label><input type="checkbox" name="check1" />Kiwi</label> <label><input type="checkbox" name="check2" />Jackfruit</label> </div> <div id="an"> <h3>Animals</h3> <label><input type="checkbox" name="check1" />Tiger</label> <label><input type="checkbox" name="check2" />Sloth</label> </div> <div id="veg"> <h3>vegetables</h3> <label><input type="checkbox" name="check1" />Tiger</label> <label><input type="checkbox" name="check2" />Sloth</label> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM