Не работает backspace в input при таком скрипте

Eugen Eray

Проблема такая: есть скрипт на jQuery

$("#captchaField").on("keypress keydown blur",function (event) {
"use strict"; $(this).val($(this).val().replace(/[^\d].+/, "")); if ((event.which < 48 || event.which > 57)) { event.preventDefault();}
});

Он позволяет вводить только цифры в поле, но когда я его пытаюсь очистить нажав backspace или заменить его текущее значение выделив какой-то символ и пытаюсь заменить его другим (я может непонятно объясняю, но можно в input выделить символы и при нажатии на любую клавишу с символом значение input, которое вы выделили будет изменено на символ клавиши). С этим скриптом эти возможности урезаются. Помогите вернуть их обратно.

1 ответ

Eugen Eray

Можно использовать input событие. И поправил регулярное выражение - оно разрешало один любой символ после цифр.

$(function() { $('#captchaField').on('input', function(event) { $(this).val($(this).val().replace(/[^\d]+/, '')); });
});

licensed under cc by-sa 3.0 with attribution.