2015-04-22 167 views
0

如果未選中單選按鈕,我的代碼應彈出警報。 我的問題是,如果你選擇了一個問題,它只會彈出。例如,我在問題1中選擇了一個答案,但在問題2中未選擇答案。因此它提供了一個警告:必須選擇問題二!但我的問題是,如果你不選擇任何東西,它不會提醒我任何事情。如果我沒有選擇任何東西,它應該彈出,2個警報,必須選擇第一個問題,然後,另一個警報,必須選擇問題2!任何幫助將不勝感激,謝謝!彈出Javascript中的警報消息

<html> 
    <head> 
    <script> 


    function checkAnswers(){ 
    var retval = false; 
    var inputs = document.getElementsByTagName('input'); 
    for(i=0;i<inputs.length;i++){ 

     var inputName = inputs[i].getAttribute('name'); 
    //  var msg = document.getElementById('msg-' + inputName); 
       var checker = document.getElementsByName(inputName); 
       var counter = false; 
       for(j=0;j<checker.length;j++){ 
        if(checker[j].checked == true){ 
        counter = true; 
        i += 4; 
        break; 
        } 
       } 
       if(counter == false){ 
        alert("Must answer question number" + " " + inputName + "!"); 
        retval = false; 
        i += 4; 
       } 
     } 
     return retval; 

} 

    </script> 
    </head> 
    <body> 
    <form name="myForm" onsubmit="return checkAnswers()" id="form"> 
     <h1>QUESTIONS</h1> 
     <h3>Question No. 1.)</h3>What makes you smile?<br /> 
     <input name="one" type="radio" value="yes" />A. Burger<br /> 
     <input name="one" type="radio" value="no" />B. Pizza <br /> 
     <input name="one" type="radio" value="no" />C.Sunrise <br /> 
     <input name="one" type="radio" value="no" />D. Kitkat<br /> 
     <span id="msg-one"></span><br /> 


      <h3>Question No. 2.)</h3>What's your favorite day?<br /> 
     <input name="two" type="radio" value="no" />A. Hi<br /> 
     <input name="two" type="radio" value="yes" />B. Hello<br /> 
     <input name="two" type="radio" value="no" />C. Ahh<br /> 
     <input name="two" type="radio" value="no" />D. Kitkat<br /> 
     <span id="msg-two"></span><br/> 


      <input type="button" name='submit' value="Submit" /><br /> 
      <span id="score"></span><br /> 
    </form> 



    </body> 
    </html> 
+0

是否有可能使用布爾語句? – Blank

+0

嘗試了你的代碼在我身邊,它似乎工作,只需將按鈕從按鈕類型更改爲提交類型,並得到2警報 – Lupin

+0

哦,你是對的!謝謝:))) –

回答

0

你嵌套for循環,都使用變量「我」。試着改變它,這樣每個循環都有一個單獨的(理想描述的)變量名稱。

+0

我試過但沒有工作,如果我沒有選擇任何問題。 –

0

既然你加入,我會建議使用jQuery的解決方案:

function checkAnswers() { 
    var questions = {}; 
    $('#form input[type="radio"]').each(function() { 
     // add all questions 
     questions[this.name] = true; 
    }).filter(":checked").each(function() { 
     // remove questions that have an answer 
     delete questions[this.name]; 
    }); 
    for (var k in questions) { 
     alert("Must answer question number " + k + "!"); 
    } 
} 

questions這裏to mimic a set使用。

但是你的提交按鈕也應該有類型submit,不button或者您需要添加一個onclick處理程序:

<input type="submit" name='submit' value="Submit" />