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

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

我一直没有定义。


当前回答

如果你正在使用jQuery:

$('input[name=“rate”]:checked').val();

其他回答

下面是一种解决方案,将单选按钮放在一个常量中,只在需要时获取所选值。

Const rates = document.forms.rates.elements["rate"] showRate () 函数showRate () { . getelementbyid(的结果)。innerHTML = rates.value } <form id="rates" onchange="showRate()" > <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 id = "结果" > < / div >

多次直接调用单选按钮会给你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按钮)。

另一种(显然是旧的)选择是使用格式: ”document.nameOfTheForm.nameOfTheInput.value;“ 例如document.mainForm.rads.value;

document.mainForm.onclick = function(){ var radVal = document.mainForm.rads.value; result.innerHTML = '你选择了: '+radVal; } <form id=“mainForm” name=“mainForm”> <输入类型=“无线电” 名称=“rads” 值=“1” /> <输入类型=“收音机” 名称=“rads” 值=“2” /> <输入类型=“无线电” 名称=“rads” 值=“3” /> <输入类型=“收音机” 名称=“rads” 值=“4” /> </form> <span id=“result”></span>

您可以在表单中通过元素的名称来引用元素。但是,原始HTML不包含表单元素。

这里(适用于Chrome和Firefox): https://jsfiddle.net/Josh_Shields/23kg3tf4/1/

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"

使用文档。querySelector('input[type = radio]:checked').value;要获得所选复选框的值,你可以使用其他属性来获取值,如名称=性别等,请通过下面的代码片段,它肯定会对你有帮助,

解决方案

document.mainForm.onclick = function(){ var gender = document.querySelector('input[name = gender]:checked').value; result.innerHTML = 'You Gender: '+gender; } <form id=“mainForm” name=“mainForm”> <输入类型=“收音机”名称=“性别”值=选中“男性”/>小 <输入类型=“收音机”名称=“性别”值=“女性”/>女性 <输入类型=“电台” 名称=“性别” 值=“其他” />其他 </form> <span id=“result”></span>

感谢