2012-03-20 45 views
0

我已經創建了一個窗體。在該窗體中,它放置了一個文本框。該文本框應該只取整數而不是字符或浮點數。所以我應用了這樣的驗證。是否正確?驗證整數

var a = document.getElementById('textbox1').value; 
var b = /^\d+$/; 

If (a.search(b) == -1) 
{ 
alert(Must be Interger); 
return false; 
} 
+1

你應該使用b.test(a)。並且警報應該包含引號中的字符串'' – 2012-03-20 05:21:50

回答

2

是的,這將工作,除非它是允許攜帶一個負整數,在這種情況下,你需要前\d

2

添加-?(可選負號),你可以使用這個腳本整數驗證。

var value = Number(intfield.value); 
if (Math.floor(value) == value) { 
    // value is integer, do something based on that 
} else { 
    // value is not an Integer, show validation alerts 
} 
+0

'1asdfasdf'不是有效的數字。 – Leonid 2012-03-20 05:27:42

+0

我編輯了我的答案。 – Java 2012-03-20 05:33:00

+0

更像是徹底改變了。現在'0x1'和'10e-1'是有效的。 – Leonid 2012-03-20 10:11:50

0

您好我想下面的答案會是更好的,這樣就可以實現多個文本框

<script> 
    function isNumberKey(evt) { 
     var charCode = (evt.which) ? evt.which : event.keyCode 
     if (charCode > 31 && (charCode < 45 || charCode > 57)) { 
      return false; 
      return true; 
     } 
    } 
</script> 

感謝 巴努•普拉卡什

+2

爲什麼'返回false;返回true;'不斷? – 2012-03-20 05:45:48

0

這應該工作:

var textboxValue = document.getElementById('textbox1').value; 

if (!textboxValue.test(/^\d+$/)){ 
    alert('Must be Interger'); 
    return false; 
} 

其一個很好的習慣,把簡單的名字放在變數上,否則你將會丟失數月ater whan你檢查你的代碼:D