2013-09-24 91 views
0

爲什麼我的循環只檢查第一個單選按鈕,如果我選擇第二個或第三個單選按鈕不起作用?JS for循環只檢查第一個單選按鈕

function checkit(){ 
     for(var i=0;i<document.forms[0].test.length;i++){ 
      if(document.forms[0].test[i].checked === true){ 
       alert('OK'); 
       break; 
      }else { alert('hmz'); break; } 
     } 
    } 

<form onsubmit="checkit();"> 
    First: <input type="radio" name="test"><br> 
    Second: <input type="radio" name="test"><br> 
    Third: <input type="radio" name="test"><br> 
    <input type="submit" value="Lets try it!"> 
</form> 

感謝您的回覆。如前所述,我必須休息。但是,除了另一個問題發生,每次我按提交,如果任何框被選中,它會給我3個警報框。如何阻止它?

+0

你總是調用'break'留下循環 – Itay

+0

由於您使用的是第一,如果條件的'break'。刪除它,它應該工作。 –

+0

我不知道OP認爲「break」的意思是什麼意思 – Bart

回答

1

因爲您使用的是break,它會離開循環。

function checkit() { 
    for (var i = 0; i < document.forms[0].test.length; i++) { 
     if (document.forms[0].test[i].checked === true) { 
      alert('OK'); 
     } else { 
      alert('hmz'); 
     } 
    } 
} 
+0

但後來我得到3個警報框。一旦發現該框被選中,如何停止循環? – MrPaulius

+0

我不確定要理解這個問題。但我建議你使用[jQuery](http://jquery.com/),這對你的情況會有所幫助。使用jQuery檢查單選按鈕:$('form:radio:checked')。val()'。沒有循環。 –

+0

我需要顯示警報框OK,如果選擇了這些框中的任何一個。循環工作,但它會提示3alert框,每次我按提交按鈕。隨着休息,我可以阻止它。 – MrPaulius