2015-08-18 2 views
0

Я разработал веб-проект jsp, где пользователь должен выбрать один из параметров с помощью переключателя, и я отправлю выбранное пользователем значение на другую страницу с помощью javascript.Javascript if else condition не работает должным образом

JavaScript код:

function select() { 
    var val1 = document.getElementsByName("President"); 
    var result1; 
    for (var i = 0; i < val1.length; i++) { 

     if (val1[i].checked) { 
      console.log(val1[i].checked) 
      result1 = val1[i].value; 
      alert(result1); 

     } else { 

      alert("president vote is missing"); 
      return; 
     } 

    } 
} 

Когда пользователь не выбирает опцию, затем Javascript код работает нормально, и это будет еще и показывать предупреждающее сообщение, что («президент голосование недостающее») , Но когда пользователь выбирает одну опцию из списка, тогда условие , если условие работает нормально, а после этого еще выполняется условие, я никогда не сталкивался с такой проблемой

+2

'console.log (val1 [i] .checked)' должен иметь полуточку - может быть полезно увидеть разметку по этому вопросу, возможно? –

+1

Не могли бы вы показать нам дерево деревьев на jsfiddle, чтобы мы могли лучше понять ваш вопрос. –

ответ

2

Я вижу, что вы делаете оповещения в цикле for , Может ли это быть такой сценарий: первая итерация «if» выполняется, а затем следующая итерация «else» запускается из-за «val1 [1] .checked» is false?

+0

Не может быть так, потому что цикл будет повторяться до тех пор, пока не найдет значение проверки, и я нашел проблему по вашему решению. Можете ли вы рассказать мне, как ее решить сейчас? – Nishank

+0

Я не уверен, что именно вы намерены делать. Если «итерация до тех пор, пока не найдет значение проверки», это то, что вы после, почему бы не добавить разрыв в выражении «if», чтобы выйти из цикла for после определения значения проверки. –

+1

if (val1 [i] .checked) { console.log (val1 [i] .checked); result1 = val1 [i] .value; break; } –

0

Проблема в том, что проблема решена, я сделал этот код, если кому-то нужна помощь!

<html> 
<head> 
    <title>STACK OVERFLOW TESTS</title> 
</head> 
<body> 
    <input type = 'radio' name = 'President' value = 'Obama'>Obama</input> 
    <br> 
    <input type = 'radio' name = 'President' value = 'Bush'>Bush</input> 
    <br> 
    <input type = 'radio' name = 'President' value = 'Clinton'>Clinton</input> 
    <br> 
    <input type = 'button' id = 'button' onClick = 'showMyChoice()'> SEND </input> 

    <script> 

    function showMyChoice(){ 
     var val1 = document.getElementsByName("President"); 
     var result1; 
     var missingVote = false; 

     for(var i = 0; i < val1.length; i++){ 
      if(val1[i].checked){ // Check for all the radio buttons if there is one checked. 
       console.log(val1[i].checked); 
       result1 = val1[i].value; 
       alert(result1); 
       missingVote = false; 
       break; 
      } 
      else{ 
       missingVote = true; 
       continue; 
      } 
     } 

     if(missingVote){ 
      alert('President vote is missing'); 
     } 
    } 
    </script> 
</body> 
</html> 
Смежные вопросы