元素创建多选框,通过JavaScript监听事件并处理选中状态。
当前位置:首页 > JavaScript

js 实现多选

2026-04-05 07:15:20JavaScript

实现多选框的基本方法

使用HTML的<input type="checkbox">元素创建多选框,通过JavaScript监听事件并处理选中状态。

<input type="checkbox" id="option1" value="Option 1">
<label for="option1">Option 1</label>
<input type="checkbox" id="option2" value="Option 2">
<label for="option2">Option 2</label>
document.querySelectorAll('input[type="checkbox"]').forEach(checkbox => {
  checkbox.addEventListener('change', function() {
    if (this.checked) {
      console.log(this.value + ' is selected');
    }
  });
});

获取所有选中项的值

通过遍历所有多选框,筛选出被选中的项并收集它们的值。

function getSelectedValues() {
  const selected = [];
  document.querySelectorAll('input[type="checkbox"]:checked').forEach(checkbox => {
    selected.push(checkbox.value);
  });
  return selected;
}

全选与反选功能

添加一个“全选”复选框来控制其他多选框的状态。

js 实现多选

<input type="checkbox" id="selectAll">
<label for="selectAll">Select All</label>
document.getElementById('selectAll').addEventListener('change', function() {
  const checkboxes = document.querySelectorAll('input[type="checkbox"]:not(#selectAll)');
  checkboxes.forEach(checkbox => {
    checkbox.checked = this.checked;
  });
});

使用事件委托优化性能

对于大量多选框,使用事件委托减少事件监听器的数量。

document.addEventListener('change', function(event) {
  if (event.target.matches('input[type="checkbox"]')) {
    console.log(event.target.value + ' state changed');
  }
});

与框架结合使用

在Vue中实现多选功能。

js 实现多选

new Vue({
  el: '#app',
  data: {
    options: [
      { id: 1, value: 'Option 1', checked: false },
      { id: 2, value: 'Option 2', checked: false }
    ]
  },
  computed: {
    selectedOptions() {
      return this.options.filter(option => option.checked);
    }
  }
});

样式自定义

使用CSS自定义多选框的外观。

input[type="checkbox"] {
  appearance: none;
  width: 20px;
  height: 20px;
  border: 2px solid #ccc;
  border-radius: 4px;
}

input[type="checkbox"]:checked {
  background-color: #2196F3;
  border-color: #2196F3;
}

表单提交处理

在表单提交时获取所有选中的值。

document.querySelector('form').addEventListener('submit', function(event) {
  event.preventDefault();
  const selected = getSelectedValues();
  console.log('Selected items:', selected);
});

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

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…

js实现菜单

js实现菜单

实现基本HTML结构 使用HTML创建菜单的基本框架,通常包含<ul>和<li>元素。示例结构如下: <ul id="menu"> <li><…