Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取所选单选按钮的值?_Javascript_Html_Radio Button - Fatal编程技术网

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 for
RadioNodeList
,才能正常工作

另一个(显然较旧)选项是使用以下格式: “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
函数,该函数专门用于单选按钮

请参见,尤其是as
namedItem
通常返回
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