2013-05-14 2 views
1

при использованиипроверка только для целых чисел в текстовом поле

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

он принимает число с плавающей запятой также. Как использовать это, чтобы запретить текстовое поле принимать значения, отличные от целых?

ответ

0

Вы можете использовать объект regex: ^\d+$ Подробнее о использовании регулярных выражений в Javascript Here.

3

Поскольку вы, кажется, пытается получить номер телефона, а не общий номер, вы, вероятно, хотите использовать tel тип input:

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

См MSDN on <input> and its attributes. Я удалил minlength, так как он не является допустимым атрибутом, но для регулярного выражения атрибута pattern требуется 10 символов. Вы можете изменить это регулярное выражение, если вы хотите быть более гибким в форматах номеров телефонов, которые вы разрешаете - например, вы можете использовать \d{10}|\d{3}-\d{3}-\d{4}.

Атрибут pattern необходим для фактического подтверждения того, что текст выглядит как номер телефона. В браузере по умолчанию не выполняется проверка содержимого входов tel; он в основном просто отображает клавиатуру с номерами для мобильных браузеров. Но вы можете написать регулярное выражение JavaScript в атрибуте pattern для использования в валидации (как объясняется на странице MSDN).

+0

+1 для наиболее семантического варианта, удаление моего ответа в вашей пользу – thefrontender

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"); 

    } 

    }); 
}); 
-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; 
    } 
+0

не проще сделать это на регулярных выражениях? – Robert

+0

быть честным слабым RegEx и вариацией ответа ... – Gaurav

Смежные вопросы