创建多选按钮,每个选项对应一个独立的复选框。通过 name 属性分组,value 属性标识选项值。…">
当前位置:首页 > JavaScript

js 实现多选按钮

2026-03-15 21:25:48JavaScript

实现多选按钮的 HTML 结构

使用 <input type="checkbox"> 创建多选按钮,每个选项对应一个独立的复选框。通过 name 属性分组,value 属性标识选项值。

<div class="checkbox-group">
  <label><input type="checkbox" name="option" value="1"> Option 1</label>
  <label><input type="checkbox" name="option" value="2"> Option 2</label>
  <label><input type="checkbox" name="option" value="3"> Option 3</label>
</div>

获取已选中的值

通过 querySelectorAll 选中所有被勾选的复选框,遍历获取其 value

function getSelectedValues() {
  const checkboxes = document.querySelectorAll('input[name="option"]:checked');
  const values = Array.from(checkboxes).map(checkbox => checkbox.value);
  console.log(values); // 输出如 ["1", "3"]
}

全选/取消全选功能

添加一个控制全选的复选框,通过事件监听批量设置其他复选框状态。

<label><input type="checkbox" id="selectAll"> Select All</label>
document.getElementById('selectAll').addEventListener('change', function(e) {
  const checkboxes = document.querySelectorAll('input[name="option"]');
  checkboxes.forEach(checkbox => checkbox.checked = e.target.checked);
});

动态添加选项

通过 DOM 操作动态新增复选框选项。

function addOption(value, text) {
  const container = document.querySelector('.checkbox-group');
  const label = document.createElement('label');
  label.innerHTML = `<input type="checkbox" name="option" value="${value}"> ${text}`;
  container.appendChild(label);
}

事件监听

为复选框组绑定 change 事件,实时响应选择变化。

document.querySelectorAll('input[name="option"]').forEach(checkbox => {
  checkbox.addEventListener('change', getSelectedValues);
});

样式增强

使用 CSS 美化复选框,例如隐藏原生样式并自定义外观。

input[type="checkbox"] {
  display: none;
}
input[type="checkbox"] + label:before {
  content: "☐";
  margin-right: 5px;
}
input[type="checkbox"]:checked + label:before {
  content: "☑";
}

表单提交处理

在表单提交时收集所有选中值,可通过隐藏域或直接序列化。

js 实现多选按钮

document.querySelector('form').addEventListener('submit', function(e) {
  e.preventDefault();
  const formData = new FormData(this);
  const selected = formData.getAll('option'); // 获取所有同名复选框的值
  console.log(selected);
});

标签: 多选按钮
分享给朋友:

相关文章

js 实现按钮点击

js 实现按钮点击

实现按钮点击的 JavaScript 方法 HTML 按钮元素 在 HTML 中创建一个按钮,可以通过 <button> 或 <input> 标签实现: <button…

uniapp气泡按钮

uniapp气泡按钮

uniapp 气泡按钮实现方法 在 uniapp 中实现气泡按钮效果可以通过多种方式完成,以下是几种常见的实现方案: 使用 CSS 样式实现基础气泡 通过 CSS 的 border-radius 和…

vue实现轮播按钮

vue实现轮播按钮

实现轮播按钮的基本思路 在Vue中实现轮播按钮通常需要结合组件化思想和动态数据绑定。轮播按钮的核心功能包括自动轮播、手动切换、指示器导航等。 使用Vue实现轮播按钮 创建基础轮播组件 <tem…

vue实现点击多选

vue实现点击多选

实现点击多选的基本逻辑 在Vue中实现点击多选功能,通常需要维护一个数组来存储已选中的项,并通过点击事件动态更新该数组。核心逻辑包括数据绑定、事件处理和状态更新。 <template>…

vue实现多选功能

vue实现多选功能

Vue 实现多选功能的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。当用户选择多个选项时,选中的值会自动添加到数组中。 <temp…

vue实现多选和全选

vue实现多选和全选

Vue 实现多选和全选功能 多选和全选是常见的交互功能,可以通过 Vue 的数据绑定和事件处理轻松实现。以下是一个完整的实现方案: 数据准备 在 Vue 的 data 中定义两个关键数据项: it…