JavaScript - 尝试禁用所有单选按钮

JavaScript - Trying to disable all radio buttons

当按下一个按钮时,我试图禁用所有单选按钮。 到目前为止,我已经将单选按钮上的所有 ID 设置为“1”

HTML代码:

    <input id="1" type="checkbox" name="Q1" value="incorrect"> Bob <br>
    <input id="1" type="checkbox" name="Q1" value="incorrect"> Jim <br>
    <input id="1" type="checkbox" name="Q1" value="correct"> Callum <br>

JavaScript代码:

document.getElementById("1").disabled = true; 

然而,当我对此进行测试时,它只禁用了 1 个单选按钮,而不是全部。有没有办法像我试过的那样禁用它们?

谢谢

<input class="checkbox" type="checkbox" name="Q1" value="incorrect"> Bob <br>
<input class="checkbox" type="checkbox" name="Q1" value="incorrect"> Jim <br>
<input class="checkbox" type="checkbox" name="Q1" value="correct"> Callum <br>

Javascript 与 class:

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

改用这个:

<input id="1" type="checkbox" name="Q1" value="incorrect"> Bob <br>
<input id="2" type="checkbox" name="Q1" value="incorrect"> Jim <br>
<input id="3" type="checkbox" name="Q1" value="correct"> Callum <br>

Javascript:

var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++)
{
      if(inputs[i].type == 'checkbox')
      {
        inputs[i].disabled = true;
      }
}

由于 ID 是唯一的,您不应为所有按钮提供相同的 ID,而是为所有按钮提供相同的 ID class。然后你可以 运行 for loop:

var radioButtons = document.getElementsByClassName("your class name");
for(var i=0;i<radioButtons.length;i++) {
   radioButtons[i].disabled = true;
}

您可以使用 forEach 函数在一行中完成。

HTML:

<form if="myForm">
    <input id="1" type="checkbox" name="Q1" value="incorrect"> Bob <br>
    <input id="1" type="checkbox" name="Q1" value="incorrect"> Jim <br>
    <input id="1" type="checkbox" name="Q1" value="correct"> Callum <br>
</form>

JS ES6:

const form = document.querySelector('#myForm');

form.Q1.forEach(cb => (cb.disabled = true));

JS 香草:

var form = document.querySelector('#myForm');

form.Q1.forEach(function(cb) {
   cb.disabled = true;
});