元素创建复选框,并通过JavaScript监听其变化。
当前位置:首页 > JavaScript

js实现复选框

2026-02-28 22:21:57JavaScript

实现复选框的基本方法

使用HTML的<input type="checkbox">元素创建复选框,并通过JavaScript监听其变化。

<input type="checkbox" id="myCheckbox">
<label for="myCheckbox">选择此项</label>
const checkbox = document.getElementById('myCheckbox');
checkbox.addEventListener('change', function() {
  if (this.checked) {
    console.log('复选框被选中');
  } else {
    console.log('复选框未被选中');
  }
});

获取复选框状态

可以通过checked属性获取或设置复选框的选中状态。

// 获取状态
const isChecked = checkbox.checked;

// 设置状态
checkbox.checked = true; // 选中
checkbox.checked = false; // 取消选中

处理多个复选框

当需要处理一组复选框时,可以为它们添加相同的name属性或class。

js实现复选框

<input type="checkbox" name="fruit" value="apple"> 苹果
<input type="checkbox" name="fruit" value="banana"> 香蕉
<input type="checkbox" name="fruit" value="orange"> 橙子
const fruits = document.getElementsByName('fruit');
fruits.forEach(checkbox => {
  checkbox.addEventListener('change', function() {
    const selectedFruits = Array.from(fruits)
      .filter(c => c.checked)
      .map(c => c.value);
    console.log('选中的水果:', selectedFruits);
  });
});

全选/全不选功能

实现一个控制多个复选框的全选功能。

<input type="checkbox" id="selectAll"> 全选/全不选
<div id="checkboxGroup">
  <input type="checkbox" class="item"> 选项1
  <input type="checkbox" class="item"> 选项2
  <input type="checkbox" class="item"> 选项3
</div>
const selectAll = document.getElementById('selectAll');
const items = document.querySelectorAll('.item');

selectAll.addEventListener('change', function() {
  items.forEach(checkbox => {
    checkbox.checked = this.checked;
  });
});

使用事件委托优化性能

对于大量复选框,使用事件委托可以提高性能。

js实现复选框

document.getElementById('checkboxGroup').addEventListener('change', function(e) {
  if (e.target.classList.contains('item')) {
    console.log('复选框状态改变:', e.target.checked);
  }
});

自定义复选框样式

通过隐藏原生复选框并使用CSS自定义样式。

<label class="custom-checkbox">
  <input type="checkbox">
  <span class="checkmark"></span>
  自定义复选框
</label>
.custom-checkbox {
  position: relative;
  padding-left: 25px;
  cursor: pointer;
}
.custom-checkbox input {
  position: absolute;
  opacity: 0;
}
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 18px;
  width: 18px;
  background-color: #eee;
  border-radius: 3px;
}
.custom-checkbox input:checked ~ .checkmark {
  background-color: #2196F3;
}
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}
.custom-checkbox input:checked ~ .checkmark:after {
  display: block;
}
.custom-checkbox .checkmark:after {
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
}

使用第三方库

对于复杂需求,可以考虑使用第三方库如jQuery或专门的UI库。

// 使用jQuery
$('#myCheckbox').change(function() {
  if ($(this).is(':checked')) {
    console.log('复选框被选中');
  }
});

标签: 复选框js
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js节流实现

js节流实现

节流的概念 节流(Throttle)是一种限制函数执行频率的技术,确保函数在一定时间间隔内只执行一次。常用于滚动事件、窗口调整等高频触发的场景。 基础实现方法 使用时间戳判断是否执行函数:…