You need to enable JavaScript to run this app. 使用id与class名获取元素禁用textbox的代码不生效原因求解
优惠活动
大模型
产品
解决方案
定价
更多

使用id与class名获取元素禁用textbox的代码不生效原因求解

问题原因

  • 核心错误是DOM方法名拼写错误:原生JS获取类名对应元素的方法是document.getElementsByClassName(),你的代码漏写了Element后面的s,错误写成了getElementByClassName,导致无法正常获取到对应class的元素集合,后续操作自然失效。
  • 你用索引[0]取第一个匹配元素的逻辑本身是正确的,只要修正方法名就可以正常运行。

修正后的完整代码

JS代码

function disableText() {
  // 修正方法名,Element后补充s
  var textbox = document.getElementsByClassName("text");
  if (document.getElementById("check").checked) {
    textbox[0].disabled = true;
  } else {
    textbox[0].disabled = false;
  }
}

HTML代码

<input type="checkbox" id="check" value="check" onclick="disableText()">
<input class="text" type="textbox">

可选优化

你可以直接将复选框的checked状态赋值给disabled属性,省略if判断,简化代码:

function disableText() {
  const textbox = document.getElementsByClassName("text")[0];
  textbox.disabled = document.getElementById("check").checked;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 13:30:05