简体   繁体   English

用JavaScript弹出警报消息

[英]Pop up alert messages in Javascript

My code should pop up an alert if radio button is not selected. 如果未选中单选按钮,则我的代码应弹出一个警报。 My problem is that it only pops up if you have choosen one question. 我的问题是,只有选择了一个问题,它才会弹出。 For example, i selected an answer in question 1 but not on question 2. So it gives an alert: Must select question number two! 例如,我在问题1中选择了一个答案,但在问题2中没有选择。因此,它发出警告:必须选择第二个问题! But my problem is that, if you don't select any, it doesn't alert me anything. 但是我的问题是,如果您不选择任何选项,它不会提醒我任何事情。 If i haven't selected anything, it should pop up, 2 alerts, Must select question number one and after that, another alert, must select question number 2! 如果我没有选择任何内容,则应弹出2条警报,必须选择第一个问题,然后再选择另一条警报,必须选择第2个问题! any help would be appreciated, thanks! 任何帮助,将不胜感激,谢谢!

    <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>

You have nested for loops, both using the variable "i". 您已经嵌套了for循环,都使用了变量“ i”。 Try changing this so each loop has an individual (ideally descriptive) variable name. 尝试更改此设置,以便每个循环都有一个单独的(理想地是描述性的)变量名。

Since you added , I'll suggest a solution using jQuery: 由于您添加了 ,因此我将建议使用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 is used here to mimic a set . 在这里用questions 来模仿一个集合

But your submit button also should have the type submit , not button or you need to add a onclick handler: 但是您的提交按钮还应该具有类型submit ,而不是button否则您需要添加一个onclick处理程序:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM