访问单选按钮值

时间:2012-11-27 06:07:26

标签: javascript

Html代码: -

<input type="radio" name="radio" id="radio" value="1" onclick="validate()"> For Yourself</input> </p></br>
    <p>
    <input type="radio" name="radio" id="radio" value="2" onclick="validate()"> For Users</input>
    </p>

和JavaScript代码: -

function validate()
    {
        var btn_value=document.getElementById("radio").value;
        if(btn_value==true)
        {
            alert(btn_value);
        }

    }

现在,每当我尝试打印单选按钮的值时。始终打印值为1.

所以,现在我不明白我到底错过了什么......

Thanx提前为您提供帮助。

4 个答案:

答案 0 :(得分:2)

元素ID应该是唯一的。我修改了你的HTML和JS部分并检查下面的

试试这个

<强> HTML

<p>
     <input type="radio" name="radio" id="radio1" value="1" onclick="validate(this)"> For Yourself</input> </p></br>
<p>
    <input type="radio" name="radio" id="radio2" value="2" onclick="validate(this)"> For Users</input>
</p>

<强> JAVASCRPIT

function validate(obj)
    {
        var btn_value=obj.value;
        if(btn_value==true)
        {
            alert(btn_value);
        }

    }

答案 1 :(得分:1)

首先在你的html中永远不要使用两次DOMID! 删除它们....只使用被公开的名字!

<input type="radio" name="radio" value="1" onclick="validate()"> For Yourself</input> </p></br>
<p>
<input type="radio" name="radio" value="2" onclick="validate()"> For Users</input>
</p>

使用js检查每个具有name属性的元素!

function validate() {
    var elements = document.getElementsByName("radio");
    for(var n = 0; n < elements.length; n++) {
        if(elements[n].checked === true) {
            alert(elements[n].value);
        }
    }
}

如果您仅在onclick中使用验证方法,则可以在验证方法中传递domelement,如下所示:

<input type="radio" name="radio" value="1" onclick="validate(this)"> For Yourself</input> </p>

和你的js:

function validate(domElement) {
     if(domElement.checked === true) {
            alert(elements[n].value);
        }
}

答案 2 :(得分:0)

试试这个

<input type="radio" name="radio" id="radio" value="1" onclick="validate(this)"> For Yourself</input> </p></br>
<p>
<input type="radio" name="radio" id="radio" value="2" onclick="validate(this)"> For Users</input>
</p>​

function validate(ele)
{
    alert(ele.value);
}​

答案 3 :(得分:0)

  1. ID必须是唯一的,给它提供相同的ID是错误的。
  2. 您可以为ID提供一个正在运行的号码( - radio1,radio2等)并循环显示它们以检查选择了哪一个。