javascript - 选择后如何禁用所有单选按钮?

标签 javascript radio-button

在选中/选择一个单选按钮后,我尝试禁用具有特定名称的所有单选按钮。

这是我的尝试:

var radios = document.getElementsByName("question0");
for (var i = 0, iLen = radios.length; i < iLen; i++) {
  radios[i].onclick = showResult;
}

function showResult() {
  var x = document.getElementsByClassName("checkbox");
  var i;
  for (i = 0; i < x.length; i++) {
    x[i].disabled = true;
  }
}

问题是所有单选按钮现在都将被禁用,即使是那些名称为 question1 的单选按钮。

如何对每个问题的函数执行此操作?因此,如果我在 question1 中选择一个选项,我将无法更改答案,但仍可以在 question2 中进行选择。

最佳答案

您可以在单击其中一个单选按钮时根据名称定位它们,从而禁用整组单选按钮。

请参阅此工作示例:

var radios = document.querySelectorAll("input[type=radio]");
for (var i = 0, iLen = radios.length; i < iLen; i++) {
  radios[i].onclick = function() {
    showResult(this.name);
  }
}

function showResult(name) {
  var x = document.getElementsByName(name);
  for (var i = 0; i < x.length; i++) {
    x[i].disabled = true;
  }
}
Question 0:
<input type="radio" name="question0" val="answer1">
<input type="radio" name="question0" val="answer2">
<input type="radio" name="question0" val="answer3">

<br /> Question 1:
<input type="radio" name="question1" val="answer1">
<input type="radio" name="question1" val="answer2">
<input type="radio" name="question1" val="answer3">

关于javascript - 选择后如何禁用所有单选按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48082982/

相关文章:

javascript - 使用 Jasmine 对位于不同模块中的两个服务进行单元测试

Javascript 警报与单选表单按钮不匹配

jquery - 如何水平对齐 bootstrap 3 radio 和 radio 的标签?

javascript - 如何使用 Javascript/Jquery 更改单选按钮的值

javascript - JS包括从数组到momentjs当前日期

javascript - 将日期转换为类似于 JavaScript 中的 Date.now() 格式

javascript - Html 添加/删除Child

javascript - 有没有办法将 Google 文档分割成多个 PDF?

javascript - 通过 JQUERY 检查单选按钮组的值?

javascript - 我如何使用 jQuery/JavaScript 来查明单选按钮何时被取消选中?