选择一个单选按钮后,我希望其余按钮变为禁用状态
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>
标签,因为它在这里没有任何用处。
我正在使用 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>
标签,因为它在这里没有任何用处。