当前位置:首页 > JavaScript

js实现多选

2026-03-02 07:02:00JavaScript

实现多选的 JavaScript 方法

HTML 结构示例 创建一个包含多选框的表单,确保每个复选框有相同的 name 属性以实现分组:

<form id="multiSelectForm">
  <input type="checkbox" name="options" value="option1"> Option 1<br>
  <input type="checkbox" name="options" value="option2"> Option 2<br>
  <input type="checkbox" name="options" value="option3"> Option 3<br>
  <button type="button" onclick="getSelectedOptions()">提交</button>
</form>

获取选中值的方法 通过 querySelectorAll 筛选被选中的复选框,并提取其值:

js实现多选

function getSelectedOptions() {
  const checkboxes = document.querySelectorAll('input[name="options"]:checked');
  const selectedValues = Array.from(checkboxes).map(checkbox => checkbox.value);
  console.log(selectedValues); // 输出如 ["option1", "option3"]
}

全选/反选功能 添加一个控制所有复选框的按钮:

<button type="button" onclick="toggleAll()">全选/反选</button>

对应的 JavaScript 代码:

js实现多选

function toggleAll() {
  const checkboxes = document.querySelectorAll('input[name="options"]');
  const isAnyUnchecked = Array.from(checkboxes).some(checkbox => !checkbox.checked);
  checkboxes.forEach(checkbox => {
    checkbox.checked = isAnyUnchecked;
  });
}

事件监听优化 使用事件委托监听复选框变化,避免为每个复选框单独绑定事件:

document.getElementById('multiSelectForm').addEventListener('change', function(event) {
  if (event.target.type === 'checkbox') {
    console.log('选项状态变化:', event.target.value, event.target.checked);
  }
});

注意事项

  • 移动端适配可能需要额外样式处理,如增大点击区域。
  • 表单提交时需阻止默认行为(event.preventDefault())以避免页面刷新。
  • 若使用框架(如 React/Vue),建议使用框架提供的状态管理方式。

标签: 多选js
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pas…