0

表单包括 Radio、Select、Input 等。

var variable = document.getElementById('anyId').value;

它适用于输入元素,但对于单选按钮元素,它不能按预期工作!

在我的 HTML 页面(用于收音机)上,代码看起来像这样,

<input type="radio" id="radioValue" name="radio" value="2">Radio_1
<input type="radio" id="radioValue" name="radio" value="1">Radio_2

并在脚本中

 var radio_value = document.getElementById('radioValue').value;

radio_value总是等于 2,不管你选择 radio_1 还是 radio_2。

4

3 回答 3

1

ID 必须是唯一的。因此,您应该将代码更改为:

<input type="radio" id="radioValue1" name="radio" value="2">Radio_1
<input type="radio" id="radioValue2" name="radio" value="1">Radio_2

然后您可以通过以下方式获取这些值:

var radio_value1 = document.getElementById('radioValue1').value;
var radio_value2 = document.getElementById('radioValue2').value;
//or 
var radio_value=document.querySelector('input[name="radio"]:checked').value; 
// in this last case you don't need even to have id's in the buttons

否则,尝试读取具有相同 ID 的两个值只会给您其中的第一个。

于 2013-07-08T08:46:56.170 回答
1

通过使用getElementsByName

var selectedradio;
var radios = document.getElementsByName("radio");

 for(var i = 0; i < radios.length; i++) {
 if(radios[i].checked == true) {
   alert(radios[i].value);
   selectedradio = radios[i].value;

 }
 }
于 2013-07-08T08:53:38.127 回答
0

适用于大多数现代浏览器的纯 javascript。(也适用于 ie 9)

如果您只有一种形式且只有一组收音机,请使用 querySelector

这是新的正确方法。

var radio_value=document.querySelector('input[type="radio"]:checked').value

如果您有多个无线电组和表单,您也可以轻松扩展它。

var radio_value=document.querySelector('#YOURFORM input[name="radio"]:checked').value
于 2013-07-08T08:57:23.947 回答