Слава Україні!

Цифровой ввод

Ограничение на ввод в поле только цифрами jQuery
Способы ниже только фильтруют ввод с клавиатуры. Они не сработают, если пользователь будет вводить данные с помощью мышки (через контекстное меню). Поэтому Вам может понадобиться более продвинутый способ отсеивания, который будет срабатывать каждый раз при изменении текста. В jQuery есть событие `.change` для отслеживания изменений текстового поля. К сожалению, оно срабатывает только тогда, когда поле теряет фокус. Также есть событие `.input`, но оно не работает в IE ниже 9-й версии, а в самой девятке немного глючит. Тем не менее, если поставить фильтрацию на все необходимые события, то можно добиться вполне нормального результата с помощью короткого кода:

    <script>
        $('#txtbox').bind("change keyup input click", function() {
            if (this.value.match(/[^0-9]/g)) {
                this.value = this.value.replace(/[^0-9]/g, '');
            }
        });
    </script>
Еще один вариант

    <script>
        $(function(){
            $('.number_dots').on('input', function(){
                this.value = this.value.replace(/^\.|[^\d\.]|\.(?=.*\.)|^0+(?=\d)/g, '');
            });
        });
    </script>
Вариант с фильтрацией по коду нажатой клавиши

    <script>
        $(document).ready(function() {
            $("#txtboxToFilter").keydown(function(event) {
                // Разрешаем нажатие клавиш backspace, del, tab и esc
                if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
                // Разрешаем выделение: Ctrl+A
                (event.keyCode == 65 && event.ctrlKey === true) ||
                // Разрешаем клавиши навигации: home, end, left, right
                (event.keyCode >= 35 && event.keyCode <= 39)) {
                    return;
                } else {
                // Запрещаем всё, кроме клавиш цифр на основной клавиатуре, а также Num-клавиатуре
                    if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                        event.preventDefault();
                    }
                }
            });
        });
    </script>
В данном примере ввода только цифр используются не только коды цифр из основной клавиатуры, но и цифры на дополнительной, так называемой NUM-клавиатуры.
Предыдущая заметка Динамическое добавление полей
Следующая заметка Шпаргалка по GIT

Важлива інформація

Міністерство оборони
України
з 24.02 по 30.11
втрати противника
орієнтовно склали:
328760 ( +1180 ) особового складу
5551 ( +13 ) танків
10340 ( +28 ) бойових бронемашин
7909 ( +1 ) артилерійських систем
910 ( +0 ) РСЗВ
600 ( +0 ) засоби ППО
323 ( +0 ) літаків
324 ( +0 ) гелікоптерів
10361 ( +13 ) автомобільної техніки
22 ( +0 ) кораблі / катери
1567 ( +0 ) крилаті ракети
5954 ( +10 ) БПЛА
1124 ( +3 ) спец. техніки
4 ( +0 ) установок ОТРК/ТРК
1 ( +0 ) war.submarines

Поиск