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

如何使用document.querySelectorAll()实现复选框点击后禁用?

问题解决:点击复选框后无法禁用的问题

你的代码核心问题出在条件判断的运算符上——你用了赋值运算符=而非比较运算符===(或==)。box.checked = true是把true强制赋值给复选框的checked属性,而非判断它是否已被勾选,这会导致逻辑异常,自然无法正确触发禁用操作。

修正后的代码

let checkboxes = document.querySelectorAll('.boxes')

checkboxes.forEach(box => {
    box.addEventListener('change', () => {
        // 用===做严格相等判断
        if (box.checked === true) {
            box.disabled = true;
        }
    })
})

简化优化版

因为box.checked本身就是布尔值,可直接作为判断条件,无需额外和true比较:

let checkboxes = document.querySelectorAll('.boxes')

checkboxes.forEach(box => {
    box.addEventListener('change', () => {
        if (box.checked) {
            box.disabled = true;
        }
    })
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 02:06:34