2016-12-14 33 views
-5

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

那麼,你有什麼問題,凡在你的代碼,你有嗎? –

+3

我相信學校作業的重點是要自己弄清楚,而不是外包給堆棧溢出......否則,'prvibroj'被設置爲'parseInt'的結果,所以永遠不會是空字符串。它將是一個數字或'NaN'。 –

+0

@P Cmrecki看起來你正在將值解析爲整數,但是你的if條件是檢查空字符串。 – DavidDomain

回答

0

既然你要轉換的輸入值整數

var drugibroj = parseInt(document.getElementById("drugibroj").value); 

在drugibroj的值,如果該字段爲空將爲NaN,所以你應該檢查你是否在條件而不是「」

if(isNaN(prvibroj) || isNaN(drugibroj)) 
{ 

     alert("Za ispravan izračun, morate unijeti oba broja!"); 
} 
1

你是這樣做的:

var prvibroj = parseInt(document.getElementById("prvibroj").value); 

這要是document.getElementById("prvibroj").value爲空,將設置prvibrojNaN

那麼你是比較這個變量,如果它是一個字符串:

if(prvibroj == "" || drugibroj == "") 

但如果值爲空是一樣if (NaN == "" || NaN == "")將始終評估爲假(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; 
} 

(與同爲所有的功能)