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

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

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();
});
Оцени публикацию:
  • 24,81
Оценили человек: 24

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

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


Комментарии посетителей:
  • можно покороче:
    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 коммент полезен : +10 # Гость
    • А я обычно прямо так и возвращаю:
      function checkNumberFields(n){
       return !!(/^d+$/.test(n));
      }
      Двойое отрицание - перевод в boolean.
      01 августа 2012, 22:33 коммент полезен : 0 # Sage (гость)
  • Вот блин... еще и в функции, в конце забыл добавить return true;
    12 февраля 2012, 19:03 коммент полезен : 0 # Гость
  • Официальное трудоустройство, работа на дому.
    14 января 2017, 19:32 коммент полезен : 0 # Vegorwot (гость)
  • Официальная работа через интернет
    23 января 2017, 21:00 коммент полезен : 0 # Vegorwot (гость)
  • Первый заработок за 60 мин. Законно и без рисков!
    27 января 2017, 20:09 коммент полезен : 0 # Mnikawot (гость)
  • Официальная работа в интернете
    30 января 2017, 08:00 коммент полезен : 0 # Wpavelwot (гость)
Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Введите изображенные цифры:
Captcha
Главная
X

youtube.com/watch?v=7hFivbgIEqk

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

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