2

使用时

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

它也接受浮点数。如何使用它来防止文本框接受整数以外的内容?

4

4 回答 4

3

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

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

请参阅MSDN on<input>及其属性。我已删除minlength,因为它不是有效属性,但该pattern属性的正则表达式需要 10 个字符。如果您想在您允许的电话号码格式上更加灵活,您可以更改该正则表达式 - 例如,您可以使用\d{10}|\d{3}-\d{3}-\d{4}.

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

于 2013-05-14T06:18:38.993 回答
0

jQuery解决方案

html停留在它是

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

jQuery

$(function (){$("#ph").blur(function (){
    var regX = /^\d+$/;  
    if(regX.test($(this).val()) == false) 
    {
      //do something it is not int. In this case clear value and alert message 
      $(this).val('');
      alert("put integer");

    }

   });
});
于 2013-05-14T06:22:56.303 回答
0

您可以使用正则表达式对象:在此处^\d+$ 了解有关 Javascript 中正则表达式用法的更多信息。

于 2013-05-14T06:10:35.793 回答
-1

在 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;
    }
于 2013-05-14T06:26:39.000 回答