
本文介绍如何基于 bootstrap 构建支持多选的下拉菜单,通过在下拉项中嵌入复选框(checkbox),并配合 jquery 阻止事件冒泡,确保点击复选框时下拉菜单不意外关闭。
在标准 HTML 中,原生
核心实现原理
关键在于:
- 使用 Bootstrap 的 .dropdown 结构替代原生
; - 在 .dropdown-menu 的每个
- 中嵌入 ,提升可点击区域与无障碍支持;
- 必须阻止复选框及标签的点击事件向上冒泡,否则会触发 dropdown-toggle 的隐藏逻辑,导致菜单闪退。
完整可运行示例
Bootstrap 多选下拉菜单
注意事项与最佳实践
- ✅ 必须引入 jQuery 和 Bootstrap JS/CSS(本例使用 v3.3.7,兼容性好;若用 Bootstrap 5,需改用 Popper + 手动控制下拉逻辑);
- ✅ e.stopPropagation() 是核心,不可省略;仅 e.preventDefault() 不足以解决问题;
- ✅ 推荐为每个 添加 value 属性,便于后续通过 $('input:checked').map(...) 提取选中值;
- ⚠️ Bootstrap 3 的 .checkbox 类需配合
- ? 如需服务端提交,建议额外添加隐藏字段或通过 AJAX 收集选中值,而非依赖表单自动序列化(因复选框不在
该方案兼顾语义清晰性、交互稳定性与视觉一致性,是构建专业级多条件筛选器的轻量可靠选择。










