我们如何使用DOM访问单选按钮的值?

16 javascript dom radio-button

我们如何使用DOM访问单选按钮的值?

例如.我们有单选按钮:

<input name="sex" type="radio" value="male">

<input name="sex" type="radio" value="female">
Run Code Online (Sandbox Code Playgroud)

它们位于带有名称的表单中form1.当我尝试

document.getElementByName("sex").value
Run Code Online (Sandbox Code Playgroud)

无论检查值如何,它都会返回"男性".

小智 20

只是为了"生化"Canavar非常有用的功能:

function getRadioValue(theRadioGroup)
{
    var elements = document.getElementsByName(theRadioGroup);
    for (var i = 0, l = elements.length; i < l; i++)
    {
        if (elements[i].checked)
        {
            return elements[i].value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

...现在将被引用:

getRadioValue('sex');
Run Code Online (Sandbox Code Playgroud)

奇怪的是,像这样的东西还不是prototype.js的一部分.


eri*_*ert 9

如果您需要所选的一个,大多数框架都支持这样的功能:

//jQuery
$("input[name='sex']:checked").val()
Run Code Online (Sandbox Code Playgroud)


Mar*_*iek 7

有几种方法.

1.在每个输入上加上一个id

<input name="sex" id="sex_male" type="radio" value="male">
<input name="sex" id="sex_female" type="radio" value="female">
Run Code Online (Sandbox Code Playgroud)

然后你可以使用 document.getElementById("sex_male")

2.使用PrototypeJS之类的东西(jQuery也可以)

然后你可以做这样的事情:

//This loops over all input elements that have a name of "sex"
$$('input[name="sex"]').each( function(elem) {
  //Do something
});
Run Code Online (Sandbox Code Playgroud)

或者甚至这只是为了获得"男性"单选按钮:

$$('input[name="sex"][value="male"]').each(function(elem) {
  //Do something
});
Run Code Online (Sandbox Code Playgroud)

开始使用Prototype的一种简单方法是通过在页面的<head> </ head>标记之间添加它来从Google中添加它:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script>
Run Code Online (Sandbox Code Playgroud)


Dan*_*art 7

没有人惊讶地建议实际上使用Selector API:

document.querySelector('input[name=sex]:checked').value
Run Code Online (Sandbox Code Playgroud)

浏览器支持很好


Can*_*var 6

您可以通过以下方法获取所选无线电的值:

<script>
function getRadioValue()
{
    for (var i = 0; i < document.getElementsByName('sex').length; i++)
    {
        if (document.getElementsByName('sex')[i].checked)
        {
            return document.getElementsByName('sex')[i].value;
        }
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)