我想从一组单选按钮中获得选定的值。

这是我的HTML:

<div id="rates">
  <input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate
  <input type="radio" id="r2" name="rate" value="Variable Rate"> Variable Rate
  <input type="radio" id="r3" name="rate" value="Multi Rate" checked="checked"> Multi Rate  
</div>

这是我的js:

var rates = document.getElementById('rates').value;
var rate_value;
if(rates =='Fixed Rate'){
    rate_value = document.getElementById('r1').value;
    
}else if(rates =='Variable Rate'){
    rate_value = document.getElementById('r2').value;
    
}else if(rates =='Multi Rate'){
    rate_value = document.getElementById('r3').value;
}  

document.getElementById('results').innerHTML = rate_value;

我一直没有定义。


当前回答

你可以使用.find()来选择选中的元素:

var radio = Array.from(document.querySelectorAll('#rate input'))

var value = radio.length && radio.find(r => r.checked).value

其他回答

多次直接调用单选按钮会给你FIRST按钮的值,而不是CHECKED按钮。我宁愿调用一个onclick javascript函数来设置一个变量,以便稍后可以随意检索,而不是循环遍历单选按钮来查看哪个按钮被选中。

<input type="radio" onclick="handleClick(this)" name="reportContent" id="reportContent" value="/reportFleet.php" >

电话:

var currentValue = 0;
function handleClick(myRadio) {
    currentValue = myRadio.value;
    document.getElementById("buttonSubmit").disabled = false; 
}

额外的好处是我可以处理数据和/或对按钮的检查做出反应(在这种情况下,启用SUBMIT按钮)。

最短的

[...rates.children].find(c=>c.checked).value

Let v=[…rates.children].find(c=>c.checked).value console.log (v); < div id = "利率" > <input type="radio" id="r1" name="rate" value="Fixed rate" >固定利率 <input type="radio" id="r2" name="rate" value="可变利率">可变利率 <input type="radio" id="r3" name="rate" value="Multi rate" checked="checked"> Multi rate . < / div >

如果你正在使用javascript而不是jQuery,你可以使用这个命令:

document.querySelector("input[type='radio'][name=rate]:checked").value;

你可以使用.find()来选择选中的元素:

var radio = Array.from(document.querySelectorAll('#rate input'))

var value = radio.length && radio.find(r => r.checked).value

在Javascript中,我们可以通过使用Id的“getElementById()”来获取值,在上面的代码中,您发布的包含名称而不是Id 所以你需要这样修改

if (document.getElementById('r1').checked) {
  rate_value = document.getElementById('r1').value;
}

根据您的代码使用这个rate_value