当前位置:首页 > 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 筛选被选中的复选框,并提取其值:

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 代码:

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);
  }
});

注意事项

js实现多选

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

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

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现点击显示和隐藏

js实现点击显示和隐藏

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

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

elementui多选

elementui多选

ElementUI 多选组件使用指南 ElementUI 提供了 el-select 组件支持多选功能,通过设置 multiple 属性即可启用。以下是具体实现方法和常见场景示例: 基础多选实现 设…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: functio…