javascript - 为什么 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>```
解决方案
在这一行中:var txt = document.getElementById(par1);
您将变量设置为txt
id 为“par1”的元素。所以首先你必须把 par1 放在引号中:
var txt = document.getElementById("par1");
在那之后,你对该元素的所有引用都使用了一个不存在的变量par1
......替换它,txt
事情会更好。无法评论 php 部分,理论上它应该可以工作。
推荐阅读
- java - 如何知道具有相同源端点和目标端点的 Apache Camel 组件的执行流程?
- sql - 排序主子
- c++ - 如何找到具有边界点的所有对象的最短边界到边界距离?
- python - 如何使用 vtk 在一行中选择点?
- python - 对数尺度的直方图和核密度
- android - 如何保存和恢复 android WebView 的 WebBackForwardList?
- javascript - 慢时如何在本机反应中加快联系人处理速度?
- c - 下面的链表代码给出了有趣的错误,你能检查一下吗?
- sonarqube - SonarQube 无法启动本地主机
- angular - Typescript 中的类型委托