我想从一组单选按钮中获得选定的值。
这是我的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;
我一直没有定义。
另一种(显然是旧的)选择是使用格式:
”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/
对于生活在边缘的人们:
现在有一个叫做RadioNodeList的东西,访问它的value属性将返回当前选中输入的值。这将消除首先过滤掉“已检查”输入的必要性,就像我们在许多张贴的答案中看到的那样。
示例的形式
<form id="test">
<label><input type="radio" name="test" value="A"> A</label>
<label><input type="radio" name="test" value="B" checked> B</label>
<label><input type="radio" name="test" value="C"> C</label>
</form>
要检索检查过的值,你可以这样做:
var form = document.getElementById("test");
alert(form.elements["test"].value);
证明这一点的JSFiddle: http://jsfiddle.net/vjop5xtq/
请注意,这是在Firefox 33中实现的(所有其他主要浏览器似乎都支持它)。旧的浏览器将需要一个RadioNodeList的polfyill来正常工作