You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap 5+jQuery 3.6.0环境下如何为开关式checkbox添加选中/取消选中事件处理程序

问题根因

你当前将点击事件绑定到了外层的<div id="checkboxLondon">容器上,div元素本身不存在checked状态属性,所以$(this).is(":checked")的判断永远返回false,才会出现只有取消选中逻辑被触发的假象。

可行解决方案

推荐优先使用change事件绑定到实际的复选框元素上,该事件仅在表单控件状态实际变更时触发,兼容鼠标、键盘操作的切换场景,适配Bootstrap开关的交互逻辑,代码如下:

$('#flexSwitchCheckDefault').change(function () {
    console.log("状态变更触发");
    if ($(this).is(":checked")) {
        console.log("Checkbox is checked");
    } else {
        console.log("Checkbox is unchecked");
    }
});

如果确实需要绑定事件到外层div容器,修改状态判断逻辑即可:

$('#checkboxLondon').click(function () {
    console.log("外层点击触发");
    // 获取内部实际的复选框元素判断状态
    const $targetCheckbox = $(this).find('.form-check-input');
    if ($targetCheckbox.is(":checked")) {
        console.log("Checkbox is checked");
    } else {
        console.log("Checkbox is unchecked");
    }
});

以上方案在Bootstrap 5 + jQuery 3.6.0环境下可正常运行。


内容的提问来源于stack exchange,提问作者HJP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:45:04