Input text, принимающий только числа

Рейтинг: 1Ответов: 2Опубликовано: 28.11.2014

xxx: Добрый вечер. Как сделать, что в input можно было вводить только числа?
yyy: Ну вообще можно так ....код.....
xxx: Забавный ввод получается. Нажимаешь на буквенную клавишу, буква появляется и исчезает) А вот чтобы вообще не появлялась можно?
YYY: Можно - выломайте пользователю все буквы на клавиатуре, чтобы и нажать не смог

Это с баша.

<input type="text" id="onlynumbers" />

$('#onlynumbers').keydown(function(event){
    if((event.which<48 && event.which!=8) || event.which>57 || event.ctrlKey || event.shiftKey){
        event.preventDefault();
    }
});

Это, что получилось у меня.
Как сделать красивее и улучшить код? Ну, кроме введения.

var BACKSPACE = 8;
var ZERO_CODE = 48;
var NINE_CODE = ZERO_CODE + 9;

http://jsfiddle.net/zLmtco42/5/

Ответы

▲ 2Принят

Года 3 назад откопал в инетах вот эту функцию и использую её:

   $(selector).keypress(function (e) {
      if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
         return false;
      }
   });

Вот ваш пример с этой фукнцией

▲ 1

UPD

http://www.texotela.co.uk/code/jquery/numeric/

http://jsfiddle.net/xt1Lhr3d/ (Добавил плагин слева как External resource)

Как вариант. А вообще очень много всяких библиотек по теме есть.