2013-09-24 4 views
0

Почему моя петля проверяет только первую радиокнопку, и если я выбираю второй или третий, это не работает?JS for loop только проверяет первую радиокнопку

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

Мне нужно отобразить окно предупреждения ОК, если выбран любой из этих полей. Loop работает, но он запрашивает поля 3alert, каждый раз, когда я нажимаю кнопку отправки. И с перерывом я мог бы предотвратить это. – MrPaulius

Смежные вопросы