开发者问题收集

访问单选按钮的值

2012-11-27
99

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。

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

提前感谢您的帮助。

3个回答

元素 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);
        }

    }
Muthu Kumaran
2012-11-27

首先,永远不要在 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);
        }
}
silly
2012-11-27

尝试一下

<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);
}​
Pragnesh Chauhan
2012-11-27