Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript单选按钮验证,在chrome中有效,在IE中无效_Javascript_Html_Google Chrome - Fatal编程技术网

javascript单选按钮验证,在chrome中有效,在IE中无效

javascript单选按钮验证,在chrome中有效,在IE中无效,javascript,html,google-chrome,Javascript,Html,Google Chrome,我有这个代码来检查在用户提交表单之前,是否已经从每组单选按钮中选择了一个。它在chrome中运行良好,但在IE中,它总是要求用户回答所有问题,即使他们已经回答了。如何更改此选项以在所有浏览器中正常工作 <script> function validate(){ if (checkRadio("Radio1") && checkRadio("Radio2") && checkRadio("Radio3")){ return true; }el

我有这个代码来检查在用户提交表单之前,是否已经从每组单选按钮中选择了一个。它在chrome中运行良好,但在IE中,它总是要求用户回答所有问题,即使他们已经回答了。如何更改此选项以在所有浏览器中正常工作

<script>
function validate(){
  if (checkRadio("Radio1") && checkRadio("Radio2") && checkRadio("Radio3")){
  return true;
  }else{
    alert("Please answer all questions!");
  return false;
  }
}

function checkRadio(name){
  var radio = document.forms.myForm[name];
  for (var option in radio){
    if(radio[option].checked){
      return true;
    }
  }
  return false;
}
</script>

函数验证(){
if(检查收音机(“收音机1”)&检查收音机(“收音机2”)&检查收音机(“收音机3”)){
返回true;
}否则{
提醒(“请回答所有问题!”);
返回false;
}
}
功能检查收音机(名称){
var radio=document.forms.myForm[name];
用于(收音机中的var选项){
如果(单选[选项].选中){
返回true;
}
}
返回false;
}

问题出在
checkRadio()
——您不应该使用快速/增强的
来执行带有数组的
循环

调用
for(单选中的var选项)
每次只返回单选按钮组的名称(例如,“Radio1”)

您必须对循环使用长格式

功能检查收音机(名称){
var radio=document.forms.myForm[name];
对于(var i=0;i
谢谢,已经整理好了!
function checkRadio(name) {
    var radio = document.forms.myForm[name];
    for (var i = 0; i < radio.length; i++) {
        if (radio[i].checked) {
            return true;
        }
    }
    return false;
}