2013-12-16 48 views
1

我有这段代码来检查用户可以提交表单之前已经选择了每组单选按钮中的一个。它在Chrome中运行良好,但在IE中它始终要求用户回答所有问题,即使它们有问题。我怎样才能改变这个在所有浏览器中正常工作?javascript单选按钮验证,在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> 

回答

0

的问题是checkRadio() ---你不应该使用快速/增强for循环使用数组。

调用for (var option in radio)只是每次返回单选按钮组的名称(例如“Radio1”)。

您必须使用长格式for循环:

http://jsfiddle.net/ugZL9/

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; 
} 
+0

谢谢,得到它排序! – Gloom

相关问题