2016-03-11 75 views
1

最近我一直在研究一個「微調器」,每次增加和減少數字1,但是我想爲程序添加驗證,因此只能接受整數(無小數)但是我一直沒有成功做到這一點。如何驗證數字是一個整數

我研究過使用NaN和parseValue(s),但我還沒有找到一種方法將此包括到我的腳本中,任何幫助將不勝感激。給出的示例中的所有代碼都按我的需要工作,因此我只需要驗證。

CODE:HTML

<!DOCTYPE html> 
<html> 
    <head> 
     <h1>Spinners in JavaScript</h1> 
    </head> 
    <body> 
     <p id="textDisplay()">0</p> 

     <div align="middle"> 
      <button onclick="spinUp()">+1</button> 
      <button onclick="spinDown()">-1</button> 
     </div> 
    </body> 
</html> 

的JavaScript

currentNumber = 0; 

function spinUp() { 
    if(currentNumber==100){ 
    currentNumber = 0; 
    document.getElementById("textDisplay").innerHTML = currentNumber; 

    } else if(currentNumber < 100) { 
    currentNumber++ 
    document.getElementById("textDisplay").innerHTML = currentNumber; 
    } 
} 

function spinDown() { 
    if(currentNumber>0){ 
    currentNumber--; 
    document.getElementById("textDisplay").innerHTML = currentNumber; 

    } else if(currentNumber<=0){ 
    window.alert("Too low! Higher!"); 
    currentNumber++; 
    document.getElementById("textDisplay").innerHTML = currentNumber; 
    } 

} 
+0

你從DOM獲得的東西和數據(基本上來自html標籤,屬性等的數據)都是字符串,你必須將它們轉換成整數,parseInt(string,base),默認情況下base是10。 – Noctisdark

回答

0

您可以使用如下===操作:

if (data === parseInt(data, 10)) 
    alert("data is integer") 
else 
    alert("data is not an integer") 

How to check if a variable is an integer in JavaScript?

+0

但「100」=== parseInt(「100」)返回false。所以這個方法似乎不適用於來自parseInt()的有效整數的字符串。 – Roberto

+0

==比較值,但===比較值和類型,而===在js中==是其他語言的。 – Noctisdark

1

你可以使用的方法是這樣的:

if (number != Math.round(number)){ 
    alert("Enter a whole number"); 
    } 
0

v === v | 0;
如果v是一個整數,這是真的,否則爲false。