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

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

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

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


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

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

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

    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, 06:12 коммент полезен : +1 # Леша (гость)
  • индусы блин собрались

    function checkNumberFields(n){
          var reg=/^\d+$/
          if (!reg.test(n)) return false;
    }
    12 февраля 2012, 22:02 коммент полезен : +3 # Гость
  • Вот блин... еще и в функции, в конце забыл добавить return true;
    12 февраля 2012, 22:03 коммент полезен : 0 # Гость

Предложения и пожелания:
Ваше имя: Ваш E-mail:
Введите изображенные цифры:
Captcha

HTML (19)

CSS (36)

PHP (21)

MySQL (14)

JavaScript (57)

Flash (6)

XML (3)

Apache (34)

Дизайн (35)

Продвижение (31)

Программы (26)

Unix (11)

Интересное (37)


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


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

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

Защита сервера от ошибок в phpMyAdmin

HTML5 - новые виды атак

Социальные рекомендации Twitter в Google

Ашманов про стартапы

Skype Distributed Database Architecture

Erlang - лекарство при высоких нагрузках

Amazon Web Services: инструменты обеспечения масштабируемости и отказоустойчивости

Обсуждения на форуме:

некорректно отображается страница в браузерах

не могу войти в admin

Нужна критика идеи

Поиск по дополнительным полям и формам

Вопрос по категориям

Несколько вопросов по проекту.

Плагины, меню и интеграция

Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter| Здравствуйте, Гость | Войти | Регистрация| Карта сайта | RSS ленты
О проекте | Скачать CMS | Видеоуроки | Документация | Плагины | Форум | Идеи | Новости | Веб-мастеру | Контакты

YaPro CMS в Живом Журнале

YaPro CMS в Твитере

YaPro CMS в Одноклассниках

YaPro CMS в Яндекс.Блогах


youtube.com/watch?v=7hFivbgIEqk

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


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