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

点击Checkbox禁用input输入框失效,无论是否勾选均保持禁用如何解决?

问题修复说明

存在的问题

  • 条件判断逻辑错误:if判断中错误使用赋值运算符=代替相等判断运算符,checkAI.checked = true会强制将checkbox设为选中状态,且判断结果永远为true,导致else分支永不执行,输入框始终禁用。
  • 缺少状态监听逻辑:当前的状态判断仅在页面初始化的立即执行函数中运行一次,用户后续点击checkbox时没有触发对应逻辑更新输入框状态。
  • 变量声明缺失:p1、p2未添加声明关键字,会默认成为全局变量造成作用域污染。

修复后代码

JS代码

const Initialization = (function() {
  // 补全变量声明,限定作用域
  let p1 = '';
  let p2 = '';

  const playerOne = document.querySelector('#player1')
  const playerTwo = document.querySelector('#player2')
  const checkAI = document.querySelector('#computer')
  const startButton = document.querySelector('#start')

  startButton.addEventListener('click', () => {
    p1 = Player(playerOne.value)
    p2 = Player(playerTwo.value)
  })

  // 封装状态切换逻辑
  function syncPlayer2Status() {
    // 直接用checkbox的选中状态赋值给输入框的disabled属性,无需额外if判断
    playerTwo.disabled = checkAI.checked
  }

  // 初始化时执行一次,适配页面初始加载的checkbox状态
  syncPlayer2Status()
  // 绑定change事件,每次点击checkbox都同步更新输入框状态
  checkAI.addEventListener('change', syncPlayer2Status)

  return {
    p1,
    p2
  }
})();

HTML代码

原有HTML代码无需调整即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:09:10