2012-03-20 90 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