javascript单选按钮验证,适用于chrome,而不是IE

时间:2013-12-16 22:20:21

标签: javascript html google-chrome

我有这个代码来检查用户可以提交表单之前是否已经选择了每组单选按钮中的一个。它在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>

1 个答案:

答案 0 :(得分: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;
}