选择一个单选按钮后,我希望其余按钮变为禁用状态

After selecting one radio button, I want the remaining buttons to become disabled

我正在使用 java 脚本开发乒乓球游戏,其中可以使用一组单选按钮更改难度级别

<form action="">
        <input type="radio" name="level" value="8">Beginner<br> 
        <input type="radio" name="level" value="4">Intermediate<br>
        <input type="radio" name="level" value="2">Pro<br>        
      </form>

水平在第一次尝试时调整得很好,但当有人点击另一个单选按钮时,游戏场会受到影响并不断刷新。 I am using html 5 and set the fps to 60. What I wanted is after a new page refresh, when one selects one radio button, the remaining buttons should become disabled till the user refreshes the page.有没有办法在 vanilla js 中做到这一点?

您可以遍历单选按钮集合并在更改事件中更改它们的禁用状态。例如像这样:

var radios = [].slice.call(document.querySelectorAll('input[name=level]'));

radios.forEach(function(radio) {
    radio.addEventListener('change', function() { 
        radios.forEach(function(r) {
            r.disabled = r !== radio;
        });
    });
});
<form action="">
  <input type="radio" name="level" value="8">Beginner<br>
  <input type="radio" name="level" value="4">Intermediate<br>
  <input type="radio" name="level" value="2">Pro<br>
</form>

如果您只是想在单击后禁用它们,那么应该这样做..

 <form action="" name="formName">
            <input type="radio" name="level" value="8">Beginner<br> 
            <input type="radio" name="level" value="4">Intermediate<br>
            <input type="radio" name="level" value="2">Pro<br>        
          </form>  

点击事件

$("input:radio[name=level]").click(function(){
    var radios = document.formName.level;

        for (var i=0, iLen=radios.length; i<iLen; i++) {
          radios[i].disabled = true;
        } 
});

这里是fiddle Click here

你可以用普通的 javascript。

var buttons = document.getElementsByName('level');

for(var i = 0; i < buttons.length; i++)
{
    buttons[i].onclick = function()
    {
     for(var j = 0; j < buttons.length; j++)
        {
            if(j != i)
            {
                buttons[j].setAttribute('disabled', 'true');
            }
        }
    }
}

另外,我会去掉 <form> 标签,因为它在这里没有任何用处。