如何在HTML中在一个复选框和一组复选框之间切换?


切换意味着,每当用户选中一个复选框时,组中的所有复选框都应取消选中;而当用户选中组中的任何复选框时,单个复选框应取消选中。我们可以用JavaScript实现此功能。在本教程中,我们将学习如何在HTML中在一个复选框和一组复选框之间切换。

语法

用户可以按照以下语法在HTML中在一个复选框和一组复选框之间切换。

checkboxes.forEach((checkbox) => {
   checkbox.checked = false;
})

在上面的语法中,`checkboxes` 是组中的所有复选框。要取消选中复选框,可以将复选框的 `checked` 属性的值设置为 `false`。

示例1

在下面的示例中,我们创建了一组名为 `table_size` 的复选框。我们还创建了单个复选框。

在组的每个复选框上,我们添加了一个 `onclick` 事件,该事件调用 `clearSingle()` 函数。在 `clearSingle()` 函数中,我们访问单个复选框并使用JavaScript取消选中它。

同样,在单个复选框上,我们添加了 `onclick` 事件,该事件调用 `clearGroup()` 函数。在 `clearGroup()` 函数中,我们访问组中的所有复选框并取消选中它们。

<html>
<body>
   <h2> Using the <i> JavaScript </i> to toggle between one checkbox and group of checkboxes. </h2>
   <label for = "table1"> 4 Feet </label> 
   <input type = "checkbox" name = "table_size" id = "table1" value = "4Feet" onclick = "clearSingle()">
   <label for = "table2"> 5 Feet </label>
   <input type = "checkbox" name = "table_size" id = "table2" value = "5Feet" onclick = "clearSingle()">
   <label for = "table3"> 6 Feet </label>
   <input type = "checkbox" name = "table_size" id = "table3" value = "6Feet" onclick = "clearSingle()">
   <label for = "table4"> 8 Feet </label>
   <input type = "checkbox" name = "table_size" id = "table4" value = "8Feet" onclick = "clearSingle()"> <br> <br>
   <label for = "clear"> Clear </label>
   <input type = "checkbox" name = "clear" id = "clear" value = "clear" onclick = "clearGroup()">
</body>
<script>
   function clearGroup() {
      let checkboxes = document.getElementsByName('table_size');
      checkboxes.forEach((checkbox) => {
         checkbox.checked = false;
      })
   }
   function clearSingle() {
      let singleCheckBox = document.getElementById('clear');
      singleCheckBox.checked = false; 
  }
</script>
</html>

在上面的示例中,我们为每个复选框添加了一个 `onclick` 事件,这可能会使代码更复杂且难以阅读。因此,在示例2中,我们将使用JavaScript为每个复选框添加 `onchange` 事件。

示例2

在下面的示例中,我们创建了一组复选框和一个单独的复选框。我们在组的每个复选框上添加了一个 `onchange` 事件。因此,每当组中任何复选框发生更改时,它都会清除单个复选框。

此外,我们在单个复选框上添加了 `onchange` 事件。每当单个复选框发生任何更改时,它都会清除组中的所有复选框。

<html>
<body>
   <h2> Using the <i> JavaScript </i> to toggle between one checkbox and group of checkboxes </h2>
   <label for = "USD"> 20 USD </label>
   <input type = "checkbox" name = "Currency" id = "USD" value = "20">
   <label for = "INR"> 1500 INR </label>
   <input type = "checkbox" name = "Currency" id = "INR" value = "1500"> 
   <label for = "Euro"> 20 Euro </label>
   <input type = "checkbox" name = "Currency" id = "Euro" value = "20">
   <label for = "GBP"> 18 GBP </label>
   <input type = "checkbox" name = "Currency" id = "GBP" value = "18">
   <br> <br>
   <label for = "clear"> clear </label>
   <input type = "checkbox" name = "clear" id = "clear" value = "clear">
</body>
<script>
   let currencyCheckBoxes = document.getElementsByName('Currency');
   let singleCheckBox = document.getElementById('clear');
   currencyCheckBoxes.forEach((checkbox) => {
      checkbox.onchange = function () {
         singleCheckBox.checked = false;
      }
   })
   singleCheckBox.onchange = () => {
      currencyCheckBoxes.forEach((checkbox) => {
         checkbox.checked = false;
      })
   }
</script>
</html>

我们学习了两个不同的示例,使用JavaScript在单个复选框和组复选框之间切换。在第一个示例中,我们使用了 `click` 事件,在第二个示例中,我们使用了 `change` 事件。

更新于:2023年2月16日

2K+ 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告