【问题标题】:javascript radio button validation, works in chrome, not in IEjavascript 单选按钮验证,适用于 chrome,不适用于 IE
【发布时间】:2013-12-17 08:15:02
【问题描述】:

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

【问题讨论】:

    标签: javascript html google-chrome


    【解决方案1】:

    问题出在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;
    }
    

    【讨论】:

    • 谢谢,整理好了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多