getElementById与Radio Buttons不太搭配

Abs*_*Abs 3 javascript

我猜getElementById不能用于单选按钮,当你想获得它的值或找出它是否被检查?我这样说是因为我这样做了:

<input id="radio1" type="radio" name="group1" value="h264" checked="checked" />
<input id="radio2" type="radio" name="group1" value="flv" />
Run Code Online (Sandbox Code Playgroud)

为了获得所选的值,我做了这个:

function getRadioValue() {

    if(document.getElementById('radio1').value=='h264'){
        return 'h264';
    }
    else{
        return 'flv';
    }

}
Run Code Online (Sandbox Code Playgroud)

然而,萤火虫不断告诉我:

document.getElementById("radio1") is null
[Break on this error] if(document.getElementById('radio1').checked==true){
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

谢谢大家

Jos*_*ola 7

这是一个可靠的功能,可以选择单选按钮.由于单选按钮按name属性分组,因此使用getElementsByName是有意义的...

function getRadioVal(radioName) {
  var rads = document.getElementsByName(radioName);

  for(var rad in rads) {
    if(rads[rad].checked)
      return rads[rad].value;
  }

  return null;
}
Run Code Online (Sandbox Code Playgroud)

在你的情况下,你会像这样使用它......

alert(getRadioVal("group1"));
Run Code Online (Sandbox Code Playgroud)


Fer*_*ndo 6

您应该document.getElementById在加载文档后调用.尝试执行这样的代码:

window.onload = function() {
    alert(getRadioValue());
}
Run Code Online (Sandbox Code Playgroud)