Очень часто стоит задача когда необходимо запретить вводить в поле input любые символы, кроме цифр, например что бы уберечь пользователя от неверного указания количества покупаемого товара в интернет магазине. Для решения поставленной задачи есть несколько способов:
- Использовать поле input с типом number (это решение не всегда удобно)
- Использовать JavaScript или библиотеку jQuery к нему
Итак ниже код простой функции которая разрешит ввод в поле input только цифры:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$('form').on('change keyup input', '.product_cnt', function (e) { if (this.value.match(/[^0-9]/g)) { this.value = parseInt(this.replace(/[^0-9]/g, ''), 10); } if (typeof this.value == 'undefined' || isNaN(this.value) || this.value == '' || this.value == '0') { this.value = 1; } }); |
Суть простая:
- Вешаем обработчик на события change, keyup, input — что бы отлавливать действия с input
- Если в водимых значениях есть цифры, то берём их и переводим в тип int
- Последнее — не даём вводить 0 и предотвращаем возможные ошибки