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

这是我的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;

我一直没有定义。


当前回答

最短的

[...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 >

其他回答

HTML代码:

<输入类型=“无线电” 名称=“rdoName” 值=“是”/> <输入类型=“无线电” 名称=“rdoName” 值=“NO”/>

JQUERY代码:

var value= $("input:radio[name=rdoName]:checked").val();

$(“#btnSubmit”).click(function(){ var value=$(“input:radio[name=rdoName]:checked”).val(); 控制台.log(值); 警报(值); }) <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script> <输入类型=“无线电” 名称=“rdoName” 值=“是”/> 是 <输入类型=“无线电” 名称=“rdoName” 值=“否”/> 否 <br/> <input type=“button”id=“btnSubmit”value=“哪一个选择了”/>

你会得到

value="YES" //if checked Radio Button with the value "YES"
value="NO" //if checked Radio Button with the value "NO"

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

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

根据您的代码使用这个rate_value

这适用于IE9及以上版本和所有其他浏览器。

document.querySelector('input[name="rate"]:checked').value;
<form id="rates">
  <input type="radio" name="rate" value="Fixed Rate"> Fixed
  <input type="radio" name="rate" value="Variable Rate"> Variable
  <input type="radio" name="rate" value="Multi Rate" checked> Multi
</form>

然后……

var rate_value = rates.rate.value;

如果按钮在窗体中 var myform = new FormData(getformbywhatever); myform.get(“率”); 上面的QuerySelector是一个更好的解决方案。然而,这种方法很容易理解,特别是如果你对CSS没有任何了解的话。另外,输入字段很可能是在一个表单中。 没有检查,还有其他类似的解决方案,抱歉重复了