使用jQuery和JavaScript只允许一个复选框被选中

162 阅读1分钟

HTML复选框用于从列表中选取多个项目,并允许使用单一选择的HTML单选按钮。

有时需要使用复选框而不是单选按钮来进行单一选择。

在本教程中,我展示了如何使用jQuery和JavaScript只允许一个复选框选择。

Allow Only One Checkbox to be Checked using jQuery and JavaScript


1.使 用jQuery

HTML

创建多个复选框并在所有复选框中添加class="checkoption"


jQuery

  • checkoption 类上定义click 事件。
  • 设置所有的复选框checked 属性为false ,除了被点击的复选框。

完成的代码

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <title>Allow Only One Checkbox to be Checked using jQuery and JavaScript</title>
</head>
<body>

   <input type="checkbox" class="checkoption" value="1" onclick="checkedOnClick(this);"> Option1 <br>
   <input type="checkbox" class="checkoption" value="2" onclick="checkedOnClick(this);"> Option2 <br>
   <input type="checkbox" class="checkoption" value="3" onclick="checkedOnClick(this);"> Option3 <br>
   <input type="checkbox" class="checkoption" value="4" onclick="checkedOnClick(this);"> Option4 <br>
   <input type="checkbox" class="checkoption" value="5" onclick="checkedOnClick(this);"> Option5 <br>

   <!-- Script -->
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
   <script type="text/javascript">
   $(document).ready(function(){

      $('.checkoption').click(function() {
         $('.checkoption').not(this).prop('checked', false);
      });

   });
   </script>
</body>
</html>

2.使 用JavaScript

HTML

创建多个复选框,并为所有复选框添加class="checkoption" 。在复选框上定义onclick 事件,调用checkedOnClick(this);


脚本

  • 创建checkedOnClick() 函数。
  • 选择所有的复选框,其中class="checkoption" ,并将其分配给checkboxesList 变量。
  • checkboxesList 上循环,并将checked 属性设置为false
  • 将被点击的复选框checked 属性设置为true

完成代码

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <title>Allow Only One Checkbox to be Checked using jQuery and JavaScript</title>
</head>
<body>

   <input type="checkbox" class="checkoption" value="1" onclick="checkedOnClick(this);"> Option1 <br>
   <input type="checkbox" class="checkoption" value="2" onclick="checkedOnClick(this);"> Option2 <br>
   <input type="checkbox" class="checkoption" value="3" onclick="checkedOnClick(this);"> Option3 <br>
   <input type="checkbox" class="checkoption" value="4" onclick="checkedOnClick(this);"> Option4 <br>
   <input type="checkbox" class="checkoption" value="5" onclick="checkedOnClick(this);"> Option5 <br>

   <!-- Script -->
   <script type="text/javascript">
   function checkedOnClick(el){

      // Select all checkboxes by class
      var checkboxesList = document.getElementsByClassName("checkoption");
      for (var i = 0; i < checkboxesList.length; i++) {
         checkboxesList.item(i).checked = false; // Uncheck all checkboxes
      }

      el.checked = true; // Checked clicked checkbox
   }
   </script>
</body>
</html>

3.总 结

你可以使用上述任何一种方法,只允许从复选框组中选择一个复选框。

如果你觉得这个教程有帮助,那么别忘了分享。