Javascript 如何获取所选单选按钮的值?
我想从一组单选按钮中获取所选值Javascript 如何获取所选单选按钮的值?,javascript,html,radio-button,Javascript,Html,Radio Button,我想从一组单选按钮中获取所选值 var radioBtValue= $('input[type=radio][name=radiobt]:checked').val(); 这是我的HTML: <div id="rates"> <input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate
var radioBtValue= $('input[type=radio][name=radiobt]:checked').val();
这是我的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>
我一直没有定义。您可以使用
checked
属性获取值
var rates = document.getElementsByName('rate');
var rate_value;
for(var i = 0; i < rates.length; i++){
if(rates[i].checked){
rate_value = rates[i].value;
}
}
var rates=document.getElementsByName('rate');
风险值率;
对于(变量i=0;i
rates元素是一个div
,因此它没有值。这可能就是未定义的的来源
选中的属性将告诉您是否选择了元素:
if (document.getElementById('r1').checked) {
rate_value = document.getElementById('r1').value;
}
或
这适用于IE9及以上版本和所有其他浏览器
document.querySelector('input[name="rate"]:checked').value;
在Javascript中,我们可以通过在上面发布的代码中使用Id的“getElementById()
”来获取值
所以你需要这样修改
if (document.getElementById('r1').checked) {
rate_value = document.getElementById('r1').value;
}
根据您的代码使用此rate_值多次直接调用单选按钮会给出第一个按钮的值,而不是选中按钮的值。我宁愿调用onclick
javascript函数来设置一个变量,以后可以随意检索该变量,而不是通过单选按钮来查看选中了哪一个
<input type="radio" onclick="handleClick(this)" name="reportContent" id="reportContent" value="/reportFleet.php" >
另外一个好处是,我可以处理数据和/或对按钮的检查做出反应(在本例中,启用SUBMIT按钮)。问题提出后大约一年过去了,但我认为答案可能会有实质性的改进。我发现这是最简单、最通用的脚本,因为它检查按钮是否已检查,如果已检查,其值是什么:
<!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 getRadioValue(groupName) {
var _result;
try {
var o_radio_group = document.getElementsByName(groupName);
for (var a = 0; a < o_radio_group.length; a++) {
if (o_radio_group[a].checked) {
_result = o_radio_group[a].value;
break;
}
}
} catch (e) { }
return _result;
}
函数getRadioValue(groupName){
var_结果;
试一试{
var o_radio_group=document.getElementsByName(groupName);
对于(var a=0;a
对于生活在边缘的人们:
现在有一个叫做a的东西,访问它的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>
JSFIDLE证明了这一点:
请注意,这是在Firefox33中实现的(所有其他主流浏览器似乎都支持它)。较旧的浏览器需要一个polfyill forRadioNodeList
,才能正常工作另一个(显然较旧)选项是使用以下格式:
“document.nameofForm.nameofInput.value;”
e、 g.document.mainForm.rads.value强>
document.mainForm.onclick=function(){
var radVal=document.mainForm.rads.value;
result.innerHTML='您选择:'+radVal;
}
如果您使用的是jQuery:
$('input[name=“rate”]:checked').val()代码>下面是api.jquery.com上为我工作的代码
HTML
变量selectedOption将包含所选单选按钮(即o1或o2)的值,假设您的表单元素由下面的myForm
变量引用,并且您的单选按钮共享名称“my radio button group name”,以下为纯JavaScript且符合标准(尽管我没有检查它是否在任何地方都可用):
上述内容将生成选中(或选定,也称为)单选按钮元素(如果有)的值,或null
的值。解决方案的关键是namedItem
函数,该函数专门用于单选按钮
请参见,尤其是asnamedItem
通常返回RadioNodeList
对象
我使用MDN是因为它允许人们跟踪标准的符合性,至少在很大程度上是这样,因为它比许多WhatWG和W3C出版物更容易理解。您可以使用.find()
来选择选中的元素:
var radio = Array.from(document.querySelectorAll('#rate input'))
var value = radio.length && radio.find(r => r.checked).value
按ID检查值:
var CheckedValues = ($("#r1").is(':checked')) ? 1 : 0;
我使用jQuery.click函数获得所需的输出:
$('input[name=rate]').click(function(){
console.log('Hey you clicked this: ' + this.value);
if(this.value == 'Fixed Rate'){
rate_value = $('#r1').value;
} else if(this.value =='Variable Rate'){
rate_value = $('#r2').value;
} else if(this.value =='Multi Rate'){
rate_value = $('#r3').value;
}
$('#results').innerHTML = rate_value;
});
希望有帮助。如果按钮的格式为
var myform=newformdata(getFormByWhather);
myform.get(“rate”);
上面的QuerySelector是一个更好的解决方案。但是,这种方法很容易理解,特别是如果你对CSS一无所知的话。另外,输入字段很可能是表单形式。
没有检查,还有其他类似的解决方案,抱歉重复
var rates = document.getElementById('rates').value;
无法获取这样的单选按钮的值,请改用
rate_value = document.getElementById('r1').value;
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>
如果您使用的是JQuery
,请使用下面的单选按钮组代码段
var radioBtValue= $('input[type=radio][name=radiobt]:checked').val();
只需使用:document.querySelector('input[rate][checked]')。value
使用document.querySelector('input[type=radio]:checked')).value;若要获取选中复选框的值,您可以使用其他属性获取值,如name=gender等。请浏览下面的片段,肯定会对您有所帮助,
解决方案
document.mainForm.onclick=function(){
var-gender=document.querySelector('input[name=gender]:checked')。值;
result.innerHTML='您的性别:'+性别;
}
男性
女性
其他
我对纯javascript这个问题的看法是找到选中的节点,找到它的值并从数组中弹出它
var Anodes = document.getElementsByName('A'),
AValue = Array.from(Anodes)
.filter(node => node.checked)
.map(node => node.value)
.pop();
console.log(AValue);
请注意,我正在使用。
请参阅以下示例。HTML代码:
JQUERY代码:
var value= $("input:radio[name=rdoName]:checked").val();
$(“#btnsupmit”)。单击(函数(){
var值=$(“输入:radio[name=rdoName]:选中”).val();
console.log(值);
警报(值);
})
对
不
在php中,它非常简单
html页面
男性
女性
其他
<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 CheckedValues = ($("#r1").is(':checked')) ? 1 : 0;
$('input[name=rate]').click(function(){
console.log('Hey you clicked this: ' + this.value);
if(this.value == 'Fixed Rate'){
rate_value = $('#r1').value;
} else if(this.value =='Variable Rate'){
rate_value = $('#r2').value;
} else if(this.value =='Multi Rate'){
rate_value = $('#r3').value;
}
$('#results').innerHTML = rate_value;
});
var rates = document.getElementById('rates').value;
rate_value = document.getElementById('r1').value;
<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>
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);`
var radioBtValue= $('input[type=radio][name=radiobt]:checked').val();
var Anodes = document.getElementsByName('A'),
AValue = Array.from(Anodes)
.filter(node => node.checked)
.map(node => node.value)
.pop();
console.log(AValue);
var value= $("input:radio[name=rdoName]:checked").val();
var elements = document.getElementsByName('radioButton');
var checkedButton;
console.log(elements);
elements.forEach(e => {
if (e.checked) {
//if radio button is checked, set sort style
checkedButton = e.value;
}
});
[...rates.children].find(c=>c.checked).value