我想从一组单选按钮中获得选定的值。
这是我的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;
我一直没有定义。
假设你的表单元素是由下面的myForm变量引用的,并且你的单选按钮共享名称“my-radio-button-group-name”,以下是纯JavaScript和标准兼容的(尽管我没有检查它是否在任何地方都可用):
myForm.elements.namedItem("my-radio-button-group-name").value
上述操作将产生选中(或也称为选中)单选按钮元素(如果有)的值,否则为空。解决方案的关键是namedItem函数,它专门用于单选按钮。
看到HTMLFormElement。元素,HTMLFormControlsCollection.namedItem,特别是RadioNodeList。作为namedItem通常返回一个RadioNodeList对象。
(我使用MDN是因为它允许人们跟踪标准遵从性,至少在很大程度上是这样,而且因为它比许多WhatWG和W3C出版物更容易理解)
https://codepen.io/anon/pen/YQxbZJ
HTML
<div id="rates">
<input type="radio" id="x1" name="rate" value="Fixed Rate"> Fixed Rate
<input type="radio" id="x2" name="rate" value="Variable Rate"
checked="checked"> Variable Rate
<input type="radio" id="x3" name="rate" value="Multi Rate" > Multi Rate
</div>
<button id="rdio"> Check Radio </button>
<div id="check">
</div>
JS的
var x ,y;
var x = document.getElementById("check");
function boom()
{
if (document.getElementById("x1").checked)
y = document.getElementById("x1").value;
else if(document.getElementById("x2").checked)
y = document.getElementById("x2").value;
else if (document.getElementById("x3").checked)
y = document.getElementById("x3").value;
else
y = "kuch nhi;"
x.innerHTML = y;
}
var z = document.getElementById('rdio');
z.addEventListener("click", boom);`
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"
这个问题已经提出一年左右了,但我认为答案可能会有实质性的改进。我发现这是最简单和最通用的脚本,因为它检查按钮是否被选中,如果是的话,它的值是什么:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Check radio checked and its value</title>
</head>
<body>
<form name="theFormName">
<input type="radio" name="theRadioGroupName" value="10">
<input type="radio" name="theRadioGroupName" value="20">
<input type="radio" name="theRadioGroupName" value="30">
<input type="radio" name="theRadioGroupName" value="40">
<input type="button" value="Check" onclick="getRadioValue('theRadioGroupName')">
</form>
<script>
function getRadioValue(groupName) {
var radios = theFormName.elements[groupName];
window.rdValue; // declares the global variable 'rdValue'
for (var i=0; i<radios.length; i++) {
var someRadio = radios[i];
if (someRadio.checked) {
rdValue = someRadio.value;
break;
}
else rdValue = 'noRadioChecked';
}
if (rdValue == '10') {
alert('10'); // or: console.log('10')
}
else if (rdValue == 'noRadioChecked') {
alert('no radio checked');
}
}
</script>
</body>
</html>
你也可以在另一个函数中调用这个函数,就像这样:
function doSomething() {
getRadioValue('theRadioGroupName');
if (rdValue == '10') {
// do something
}
else if (rdValue == 'noRadioChecked') {
// do something else
}
}