放置在函数

时间:2016-12-14 15:54:42

标签: javascript html function if-statement

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

2 个答案:

答案 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!");
 }