0

嗨,我在检查是否检查了任何单选按钮时遇到了一些问题,我得到了这个结果: Uncaught TypeError: Cannot read property 'checked' of null when I run it 与此相关的代码是:

function validateForm() {
 var msg="";
 var LoE="";
 ...some code
 for (var i=0; i<3; i++) {
 if ((document.getElementById('"LoE" + i').checked)){
     LoE="";
     break;
     }
 Else
     {
      result = false;
      msg+="You need to chose your level of entry";
      }
 }
 ...some more code
}

和正在检查的单选按钮。它们在一个名为 ExamEntry 的表格中

 <tr>

 <td><input type = "radio" name = "LevelOfEntry" id = "LoE0" value = "GCSE">GCSE</td>

 </tr>
 <tr>

 <td><input type = "radio" name = "LevelOfEntry" id = "LoE1" value = "AS">AS</td>

 </tr>
 <tr>

 <td><input type = "radio" name = "LevelOfEntry" id = "LoE2" value = "A2">A2</td>

 </tr> 

谢谢您的帮助。

编辑删除了评论中建议的单引号并替换为:

   if ((document.getElementById("LoE" + i).checked)){

现在只得到在这部分代码中未指定的错误:

    Else
     {
      result = false;
      msg+="You need to chose your level of entry";
      }
    }

编辑:解决。非常感谢大家

4

1 回答 1

0

就像一个注释,我不能 100% 确定您要做什么,但是您在指定单选按钮的数量和使用 ID 而不是名称方面限制了自己。

使用Jquery可以更轻松地使用单选按钮(只是说),或者就这篇文章而言,这是一种更强大的方式:

function get_radio_value() {
    var inputs = document.getElementsByName("selected");
    for (var i = 0; i < inputs.length; i++) {
      if (inputs[i].checked) {
        return inputs[i].value;
      }
    }
}

function onSubmit() {
    var id = get_radio_value();
    alert("selected input is: " + id);
}

请参阅此链接:在采取行动时获取单选按钮的选定值

于 2013-10-17T16:27:20.197 回答