You need to enable JavaScript to run this app. React.js如何根据checkbox勾选状态动态禁用文本输入框
优惠活动
大模型
产品
解决方案
定价
更多

React.js如何根据checkbox勾选状态动态禁用文本输入框

问题根因

  • 你给复选框组件硬编码了固定的value="true",不管勾选还是取消勾选,事件对象里的e.target.value永远是字符串"true",导致判断逻辑永远走设置禁用的分支,输入框一直保持禁用状态
  • 复选框的选中状态应该通过e.target.checked属性读取,value是表单提交时携带的字段值,和是否选中没有关联

修复步骤

  1. 修改disable2函数的逻辑,改用e.target.checked判断选中状态,修正后的代码如下:
const disable2 = (e) => {
  const isAutoAssign = e.target.checked
  setAaaa(isAutoAssign)
  setBbbb(isAutoAssign)
}
  1. 建议给CInputCheckbox组件补充checked属性和状态绑定,避免出现组件状态和React状态不一致的问题,修改后的组件代码如下:
<CInputCheckbox 
  id="checkbox1" 
  name="checkbox1" 
  onChange={e => disable2(e)} 
  checked={aaaa}
/>

修改完成后即可实现预期效果:勾选复选框时序列号输入框禁用,取消勾选时输入框恢复可输入状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 00:54:03