2013-12-16 52 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

相關問題