0

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。

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

提前感谢您的帮助。

4

4 回答 4

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>

JavaScript

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

    }
于 2012-11-27T06:10:49.037 回答
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 中使用您的 validate 方法,您可以像这样在 validate 方法中传递 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);
        }
}
于 2012-11-27T06:13:18.623 回答
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);
}​
于 2012-11-27T06:10:35.263 回答
0
  1. ID 必须是唯一的,给它相同的 id 是错误的。
  2. 您可以为 ID 提供一个运行编号(-radio1、radio2 等)并遍历它们以检查选择了哪个。
于 2012-11-27T06:11:31.720 回答