Javascript 仅验证文本框中的整数

Javascript 仅验证文本框中的整数,javascript,jquery,html,Javascript,Jquery,Html,使用时 <input type="number" name="phoneno" class="required number" minlength="10" maxlength="15" id="ph" /> 它也接受浮点数。如何使用此选项防止文本框接受除整数以外的其他值?您可以使用regex对象:^\d+$ 了解有关Javascript中正则表达式用法的更多信息。由于您似乎在尝试获取电话号码,而不是一般号码,因此您可能希望使用tel类型的input: <input t

使用时

<input type="number" name="phoneno" class="required number" minlength="10" maxlength="15" id="ph" /> 


它也接受浮点数。如何使用此选项防止文本框接受除整数以外的其他值?

您可以使用regex对象:
^\d+$

了解有关Javascript中正则表达式用法的更多信息。

由于您似乎在尝试获取电话号码,而不是一般号码,因此您可能希望使用
tel
类型的
input

<input type="tel" name="phoneno" class="required number" maxlength="15" pattern="\d{10}" id="ph" />

看。我已经删除了
minlength
,因为它不是一个有效的属性,但是
pattern
属性的regex需要10个字符。如果您想在允许的电话号码格式上更加灵活,您可以更改该正则表达式,例如,您可以使用
\d{10}| \d{3}-\d{3}-\d{4}

模式
属性对于实际验证文本是否像电话号码是必需的。默认情况下,浏览器很少验证
tel
输入的内容;它主要只是向移动浏览器显示一个带有数字的键盘。但是您可以在
模式
属性中编写JavaScript正则表达式以用于验证(如MSDN页面所述)。

JQuery解决方案

html保持不变

<input type="number" name="phoneno" class="required number" minlength="10" maxlength="15" id="ph" />

在kypress事件上调用此函数 46代表小数点,只要去掉它,就可以了

    function isNumberKey(evt)
    {
   var charCode = (evt.which) ? evt.which : event.keyCode;
   if (charCode != 46 && charCode > 31 
     && (charCode < 48 || charCode > 57)){
       alert("First Contact Number must be a number(0-9) !");
      return false;
   }
   return true;
    }
函数isNumberKey(evt)
{
var charCode=(evt.which)?evt.which:event.keyCode;
如果(charCode!=46&&charCode>31
&&(字符编码<48 | |字符编码>57)){
警报(“第一个联系人号码必须是数字(0-9)!”;
返回false;
}
返回true;
}

在正则表达式上使用它不是更容易吗?老实说,弱正则表达式和答案的变体…+1对于最语义的选项,删除我的答案而代之以你的答案
    function isNumberKey(evt)
    {
   var charCode = (evt.which) ? evt.which : event.keyCode;
   if (charCode != 46 && charCode > 31 
     && (charCode < 48 || charCode > 57)){
       alert("First Contact Number must be a number(0-9) !");
      return false;
   }
   return true;
    }