我的if
语句有问题,该语句的任务是检查输入字段并给我一条消息,说明我的字段是否为空。问题是我想把它放在一个函数中,这样如果if
语句是false
,它会自动继续执行该函数并执行它本来要执行的任务。
正如您所看到的,几乎所有函数都包含if
语句。
(我正在制作一个计算器)。
哦,请像我一样使用这个基本的JavaScript。我对JavaScript的了解仍然不是很好,因为我这样做是为了学校作业,我应该使用这种类型的代码。
我会在这里发布我的代码:
<html>
<head>
<meta charset="utf-8"/>
<script>
function pozdrav()
{
alert("Unesite dva broja te odaberite željenu operaciju:");
}
function brisi()
{
var prvibroj = "";
var drugibroj = "";
var rezultat = "";
document.getElementById("prvibroj").value = prvibroj;
document.getElementById("drugibroj").value = drugibroj;
document.getElementById("rezultat").value = rezultat;
}
function boja(elem)
{
var elem = elem.style.color="red";
}
function staraboja(elem)
{
var elem = elem.style.color="black";
}
function promjena()
{
var rezultat="";
document.getElementById("rezultat").value = rezultat;
}
function plus()
{
var prvibroj = parseInt(document.getElementById("prvibroj").value);
var drugibroj = parseInt(document.getElementById("drugibroj").value);
if(prvibroj == "" || drugibroj == "")
{
alert("Za ispravan izračun, morate unijeti oba broja!");
}
else
{
var rezultat = prvibroj + drugibroj;
document.getElementById("rezultat").value = rezultat;
}
}
function minus()
{
var prvibroj = parseInt(document.getElementById("prvibroj").value);
var drugibroj = parseInt(document.getElementById("drugibroj").value);
if(prvibroj == "" || drugibroj == "")
{
alert("Za ispravan izračun, morate unijeti oba broja!");
}
else
{
var rezultat = prvibroj - drugibroj;
document.getElementById("rezultat").value = rezultat;
}
}
function mnozenje()
{
var prvibroj = parseInt(document.getElementById("prvibroj").value);
var drugibroj = parseInt(document.getElementById("drugibroj").value);
if(prvibroj == "" || drugibroj == "")
{
alert("Za ispravan izračun, morate unijeti oba broja!");
}
else
{
var rezultat = prvibroj * drugibroj;
document.getElementById("rezultat").value = rezultat;
}
}
function djeljenje()
{
var prvibroj = parseInt(document.getElementById("prvibroj").value);
var drugibroj = parseInt(document.getElementById("drugibroj").value);
if(prvibroj == "" || drugibroj == "")
{
alert("Za ispravan izračun, morate unijeti oba broja!");
}
else
{
var rezultat = prvibroj / drugibroj;
document.getElementById("rezultat").value = rezultat;
}
}
</script>
</head>
<body onload="pozdrav()">
<h2>Kalkulator</h2>
<p>Prvi broj:</p>
<input type="text" id="prvibroj" onmouseover="boja(this)" onmouseout="staraboja(this)" onchange="promjena()" /> <br />
<p>Drugi broj:</p>
<input type="text" id="drugibroj" onmouseover="boja(this)" onmouseout="staraboja(this)" onchange="promjena()" /> <br />
<p>Rezultat:</p>
<input type="text" id="rezultat" onmouseover="boja(this)" onmouseout="staraboja(this)" onchange="promjena()" /> <br /> <br />
<input type="button" value="+" onclick="plus()"/>
<input type="button" value="-" onclick="minus()"/>
<input type="button" value="*" onclick="mnozenje()"/>
<input type="button" value="/" onclick="djeljenje()"/>
<input type="button" value="C" onclick="brisi()"/>
</body>
</html>
答案 0 :(得分:1)
你这样做:
var prvibroj = parseInt(document.getElementById("prvibroj").value);
如果document.getElementById("prvibroj").value
为空,则会将prvibroj
设置为NaN
。
然后你将这个变量比作一个字符串:
if(prvibroj == "" || drugibroj == "")
但如果值为空,则与if (NaN == "" || NaN == "")
相同,总是评估为false(NaN永远不等于任何东西)。
因此,一种解决方案是检查NaN
而不是空字符串。例如:
var prvibroj = parseInt(document.getElementById("prvibroj").value);
var drugibroj = parseInt(document.getElementById("drugibroj").value);
if(isNaN(prvibroj) || isNaN(drugibroj))
{
alert("Za ispravan izračun, morate unijeti oba broja!");
}
else
{
var rezultat = prvibroj + drugibroj;
document.getElementById("rezultat").value = rezultat;
}
(所有功能都一样)
答案 1 :(得分:0)
因为您要将输入值转换为整数
var drugibroj = parseInt(document.getElementById("drugibroj").value);
如果该字段为空,则drugibroj中的值为NaN,因此如果条件不是“”,则应检查Nan中的“”
if(isNaN(prvibroj) || isNaN(drugibroj))
{
alert("Za ispravan izračun, morate unijeti oba broja!");
}