javascript - 如何使用 jQuery 匹配值后删除复选框?

标签 javascript jquery

我有 4 个复选框,如果我选择 1 个复选框,那么我将获得 1 个或多个子值,如果我选择第二个复选框,那么我将获得 1 个或多个子值,我的问题是,如果我取消选中第一个复选框,那么我将获得 1 个或多个子值。我必须删除未选中的复选框值,而不是第二个复选框值()。

$('.search-box1').on("click", function(e) {

  var inputVal1 = $(this).val();
  var cars = ["Saab", " Volvo", " BMW", " ABC", " HONDA", " TVS"];
  $(".arrVal").html(cars);

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div class="row">
  <div>
    <label>First Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="First Page">
  </div>

  <div>
    <label>Second Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="Second Page">
  </div>

  <div>
    <label>Third Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="Third Page">
  </div>

  <div>
    <label>Fourth Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="Fourth Page">
  </div>
</div>

<div class="arrVal"></div>

最佳答案

  • 您可以将 cars 变量构造为对象。使用复选框 值作为键。
  • 使用更改作为事件
  • 使用 $('.search-box1:checked') 选择器获取所有选中的 .search-box1 并使用 map 进行循环穿过物体。
  • 使用join()将数组变成字符串(逗号分隔)。

$('.search-box1').on("change", function(e) {

  var inputVal1 = $(this).val();
  var cars = {
    value1: ["Saab", "Volvo", "BMW"],
    value2: ["ABC", "HONDA", "TVS"],
    value3: [],
    value4: [],
    value5: [],
  }

  var result = $('.search-box1:checked').map(function() {
    return cars[this.value] || [];
  }).get();

  $(".arrVal").html(result.join());

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<div class="row">
  <div>
    <label>First Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="value1">
  </div>

  <div>
    <label>Second Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="value2">
  </div>

  <div>
    <label>Third Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="value3">
  </div>

  <div>
    <label>Fourth Page</label>
    <input type="checkbox" name="txtCheck" id="txtCheck" class="search-box1" value="value4">
  </div>
</div>

<div class="arrVal"></div>

关于javascript - 如何使用 jQuery 匹配值后删除复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56254175/

相关文章:

javascript - 无法在 Angular 2 中从父组件更新子组件 View

javascript - Adblock 正在阻止 iframe 重定向 - 如何检测?

jquery - 返回 Bootstrap 导航选项卡选择的索引

javascript - 无法在鼠标输入时使用 jquery 将焦点设置为下拉列表

jquery - 如何将选中的 ="checked"属性添加到 .html() 方法的输出

javascript输入另一个程序要求的密码

javascript - 为大范围整数生成随机顺序的聪明方法?

javascript - 使用 jquery 更新图像源无法正常工作

jquery - 在令人赏心悦目的场景中使用 Knockout JS?

javascript - jQuery - 如何阻止 div 在可排序交互中完全移动