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

如何同时通过ID和Value获取元素并禁用指定单选按钮?

解决通过ID和Value禁用单选按钮的问题

嘿,我来帮你搞定这个问题~首先得指出一个关键问题:你这段HTML里的三个单选按钮用了同一个ID selectedAnswerIDforQ15,但HTML规范里ID必须是页面唯一的,所以document.getElementById只会返回第一个匹配的元素,这就是你没法选中其他按钮的核心原因。

下面给你几个可行的解决方案:

方法1:通过name属性批量筛选并禁用

因为这些单选按钮的name属性是相同的,我们可以先获取所有同name的按钮,再遍历判断value来禁用:

// 获取所有name为selectedAnswerIDforQ15的单选按钮
const radioButtons = document.querySelectorAll('input[name="selectedAnswerIDforQ15"]');

// 遍历每个按钮,判断value后禁用(这里78、79、80都禁用)
radioButtons.forEach(button => {
  const value = parseInt(button.value);
  if ([78, 79, 80].includes(value)) {
    button.disabled = true;
  }
});

方法2:用属性选择器精准匹配单个/多个按钮

如果你想精准定位某个value的按钮,可以直接用复合属性选择器:

// 单独禁用value为78的按钮
document.querySelector('input[name="selectedAnswerIDforQ15"][value="78"]').disabled = true;

// 一次性禁用多个指定value的按钮
document.querySelectorAll(
  'input[name="selectedAnswerIDforQ15"][value="78"],' +
  'input[name="selectedAnswerIDforQ15"][value="79"],' +
  'input[name="selectedAnswerIDforQ15"][value="80"]'
).forEach(btn => btn.disabled = true);

额外建议:修正HTML的ID不规范问题

虽然上面的方法能解决需求,但还是建议你修正HTML,给每个单选按钮设置唯一ID(这才是符合规范的写法),比如:

<input id="selectedAnswerIDforQ15_78" name="selectedAnswerIDforQ15" type="radio" value="78" />
<input id="selectedAnswerIDforQ15_79" name="selectedAnswerIDforQ15" type="radio" value="79" />
<input id="selectedAnswerIDforQ15_80" name="selectedAnswerIDforQ15" type="radio" value="80" />

之后你就可以直接通过唯一ID精准禁用按钮了:

document.getElementById('selectedAnswerIDforQ15_78').disabled = true;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:31:29