创建多选按钮,每个选项对应一个独立的复选框。通过 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"]
}

全选/取消全选功能

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

js 实现多选按钮

<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 事件,实时响应选择变化。

js 实现多选按钮

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: "☑";
}

表单提交处理

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

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

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

相关文章

css 制作按钮

css 制作按钮

基础按钮样式 使用CSS创建一个基础按钮需要定义padding、background-color、border和border-radius等属性。以下是一个简单示例: .button { pad…

vue 实现多选功能

vue 实现多选功能

Vue 实现多选功能的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选功能。适用于复选框组(checkbox)或下拉多选(select multi…

js 多选 实现

js 多选 实现

实现多选的 JavaScript 方法 使用复选框(Checkbox)实现多选 通过 HTML 的 checkbox 元素配合 JavaScript 实现多选功能。用户可以选择多个选项,提交时获取所有…

uniapp气泡按钮

uniapp气泡按钮

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

vue按钮实现多选

vue按钮实现多选

Vue 按钮实现多选的方法 在 Vue 中实现按钮多选功能,可以通过绑定 v-model 到数组或对象,结合样式控制来实现。以下是几种常见方法: 方法一:使用 v-model 绑定数组 通过…

vue实现复制按钮

vue实现复制按钮

实现复制按钮的方法 在Vue中实现复制按钮功能,可以通过多种方式完成。以下是几种常见的方法: 使用Clipboard API 现代浏览器提供了Clipboard API,可以直接调用实现复制功能。这…