我正在从事的这个项目询问一个乘法问题,并发送警报通知您答案是否正确。唯一的问题是,当验证您的答案时,它做错了。这是代码:



<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Math Facts Game</title>
        <style>
            h1 {text-align: center; font-size:28px;}
            h2 {color: green; text-align: center;}
            body {text-align: center;}
        </style>

    </head>
    <body id="body">
        <h1>Welcome to</h1><a href="https://www.khanacademy.org/profile/Ethanlovessnakes/">epthesnakelover's</a><h1> math fact game!</h1>
        <h2 id="loading-bar"></h2>
        <br>
        Range: <input id="range1"> to <input id="range2">
        <br>
        <br>
            <button onclick="startgame()">Start</button>

        <div id="loader-container">
        </div>
        <script>
            function startgame() {
                var answer;
                var realanswer;
                rangeo = document.getElementById("range1").value;
                ranget = document.getElementById("range2").value;
                document.getElementById("body").innerHTML = "Loading";
                var y = document.createElement("BR");
                document.body.appendChild(y);
                var x = document.createElement("IMG");
                x.setAttribute("src", "https://upload.wikimedia.org/wikipedia/commons/d/de/Ajax-loader.gif");
                x.setAttribute("width", "10%");
                x.setAttribute("height", "10%");
                x.setAttribute("alt", "Loader");
                document.body.appendChild(x);
                var one;
                var z;
                setTimeout(game, 3000)
                };

            function game() {
                document.getElementById("body").innerHTML = "";


                one = Math.floor((Math.random() * ranget) + rangeo);
                two = Math.floor((Math.random() * ranget) + rangeo);

                document.getElementById("body").innerHTML = "What is " + one + " X " + two;
                var y = document.createElement("BR");
                document.body.appendChild(y);
                var input = document.createElement("INPUT");
                input.setAttribute("id", "answer");
                input.setAttribute("placeholder", "Answer");
                input.setAttribute("type", "text");
                document.body.appendChild(input);
                var y = document.createElement("BR");
                document.body.appendChild(y);
                var btn = document.createElement("BUTTON");
                var t = document.createTextNode("Submit");
                btn.appendChild(t);
                btn.setAttribute("onclick", "go()");
                document.body.appendChild(btn);
            };

            function go() {
                answer = document.getElementById("answer").value;
                realanswer = rangeo + ranget;

                if (answer == realanswer) {
                    alert("Correct!")
                    game();
                }
                else {
                    alert("Incorrect")
                    game();
                }

            };


        </script>





我曾尝试与我的父亲一起进行故障排除,但他的编码并不先进(如果您碰巧读到此,则不会冒犯父亲),但我们无法弄清楚。我知道那里有一些非常聪明的编码员,请帮助我。所有帮助表示赞赏。提前致谢

最佳答案

您的变量rangeoranget实际上包含字符串,因此,当您“添加”它们时,实际上是将两个字符串连接在一起,而不是您期望的数字加法。

您可以使用例如rangeo = +document.getElementById("range1").value将该值转换为正确的数字而不是字符串(当然,其他字段也是如此)。

10-07 19:51
查看更多