Когда мне приходилось делать подобные вещи, я использовал событие onkeyup
.
Вместо автоматического удаления символов (что может привести к путанице у пользователя), почему бы не иметь регулярное выражение, проверяющее действительные символы при вводе ключа, а затем, возможно, отображающее примечание к входу, что-то вроде «Вы не можете вводить числа в этом поле» или что-то более конкретное для фактического поля ввода: «Название вашего города может не включать число (я)».