首页 > 解决方案 > 为什么 Js 中的函数不会返回 false 以形成

问题描述

我在 js 中创建了一个计算器。我想使用表单和提交按钮,但是尽管输入它以返回 false,但它仍然是 true,并且想要转到 php.ini 中不存在的页面。

还添加了验证,但我不知道是什么导致了问题

<html>
<body>
    <center>
    <form name="formularz" action="/action_page.php" onsubmit="return sprawdzForm()" method="post">
        A: <input type="number" name="a">
        <select id="Wybieracz">
            <option value="+">Dodawanie</option>
            <option value="-">Odejmowanie</option>
            <option value="*">Mnożenie</option>
            <option value="/">Dzielenie</option>
        </select>
        B: <input type="number" name="b">
        <input type="submit" value="Submit">
    </form>    
    <span id="par1"></span>

    <script>
    

        function sprawdzForm() {
            var wynik = 0;
            var x = document.forms["formularz"]["a"].value;
            x = parseInt(x);
            var y = document.forms["formularz"]["b"].value;
            y = parseInt(y);
            var znaczek = document.forms["formularz"]["Wybieracz"].value;
            var txt = document.getElementById(par1);



            if(isNaN(a) || isNaN(b)) {
                par1.style.backgroundColor = "red";
                par1.innerHTML = "Podaj liczbę";
            }    
            if(a == "" || b == "") {
                par1.style.backgroundColor = "red";
                par1.innerHTML = "a lub b jest puste";
            } 

            switch(znaczek){
                case "+":
                    wynik = x+y;
                    break;
                case "-":
                    wynik = x-y;
                    break;
                case "*":
                    wynik = x*y
                    break;
                case "/": 
                    wynik = x/y; 
                    break;
            }

            par1.style.backgroundColor = "green";
            par1.innerHTML = "Twój wynik to : " + wynik;
            return false;
        }            
    </script>
    </center>
</body>
</html>```

标签: javascripthtml

解决方案


在这一行中:var txt = document.getElementById(par1);您将变量设置为txtid 为“par1”的元素。所以首先你必须把 par1 放在引号中:

var txt = document.getElementById("par1");

在那之后,你对该元素的所有引用都使用了一个不存在的变量par1......替换它,txt事情会更好。无法评论 php 部分,理论上它应该可以工作。


推荐阅读