Проверка текстового поля на число в момент ввода данных

Делаем правильную и хорошую проверку на число

function checkNumberFields(e, k){
	
	var str = jQuery(e).val();
	var new_str = s = "";
	
	for(var i=0; i < str.length; i++){
		
		s = str.substr(i,1);
		
		if(s!=" " && isNaN(s) == false){// если цифра
			new_str += s;
		}
	}
	if(eval(new_str) > 200){ new_str = 200; }
	if(eval(new_str) == 0){ new_str = ""; }
	
	jQuery(e).val(new_str);
	
}

jQuery("input").keyup(function(event){// когда пользователь отпускает клавишу клавиатуры
    checkNumberFields(this, event);
}).keypress(function(event){// когда пользователь нажимает клавишу клавиатуры и удерживает её в нажатом состоянии
    checkNumberFields(this, event);
}).change(function(event){// когда поля теряет фокус
    checkNumberFields(this, event);
}).click(function(){
	this.select();
});
Оцени публикацию:
  • 25,86
Оценили человек: 25

Похожие статьи:

Справочники и учебники:


Комментарии посетителей:
  • можно покороче:
    jQuery("input").bind('keyup keypress change', function(event){
        checkNumberFields(this, event);
    }).click(function(){
        this.select();
    });
    16 декабря 2009, 17:22 коммент полезен : -1 # Гость
  • Типичный "индусский код"...

    Вместо того чтобы написать примерно так, одной строкой:

    <input  type="text" size="4" onKeyPress ="if ((event.keyCode < 48) (event.keyCode > 57))  event.returnValue = false;">
    25 июля 2010, 16:14 коммент полезен : 0 # Omm
    • фигня, правая кнопка мыши и вставляй что хочешь...
      18 мая 2011, 06:13 коммент полезен : +3 # Гость
  • последний код красив, но не устраивает. Тогда на коленке был написан отакой.

    a=document.forms["f"].cost;
    b='';
    c='0123456789.,';
    for(i=0; i<a.value.length; i++)
    {
    if (c.indexOf(a.value[i])!=-1) {b=b+a.value[i]}
    }
    a.value=b.split(',').join('.');
    if (a.value.split('.').length>2) {b=a.value.split('.'); a.value=b[0]+'.'+b[1]}

    убирает из инпута 'cost' все кроме 1234567890., Запятую меняет на точку. Последняя строка удаляет лишние точки и то что за ними.
    05 мая 2011, 02:12 коммент полезен : +2 # Леша (гость)
    • Это так же вешать на событие

      jQuery("input").keyup(function(event){// когда пользователь отпускает клавишу клавиатуры
         checkNumberFields(this, event);
      }).keypress(function(event){// когда пользователь нажимает клавишу клавиатуры и удерживает её в нажатом состоянии
         checkNumberFields(this, event);
      }).change(function(event){// когда поля теряет фокус
         checkNumberFields(this, event);
      }).click(function(){
            this.select();
      });

      Можете целиком код вписать, пожалуйста? =)
      12 июля 2012, 07:52 коммент полезен : 0 # Adward
  • индусы блин собрались

    function checkNumberFields(n){
          var reg=/^d+$/
          if (!reg.test(n)) return false;
    }
    12 февраля 2012, 19:02 коммент полезен : +11 # Гость
    • А я обычно прямо так и возвращаю:
      function checkNumberFields(n){
       return !!(/^d+$/.test(n));
      }
      Двойое отрицание - перевод в boolean.
      01 августа 2012, 22:33 коммент полезен : 0 # Sage (гость)
  • Вот блин... еще и в функции, в конце забыл добавить return true;
    12 февраля 2012, 19:03 коммент полезен : 0 # Гость
Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2018 YaPro.Ru

Главная » Веб-мастеру » JavaScript »