Хороший аргумент против этой практики также приветствуется, если появятся новые проблемы, которые возникнут, если эта проверка будет осуществлена; однако, это кажется обычным явлением в других языках, поэтому я сомневаюсь, что это плохая вещь.
Если под словом «подтвердить» вы подразумеваете «вообще запретить ввод недопустимых символов», я считаю, что это плохая практика. Это сбивает с толку пользователей, которые, возможно, не обращают пристального внимания и, возможно, даже не глядя на поле во время ввода (например, если они вводят учетную запись или номера телефонов, которые читают с листа бумаги). Значение, которое фактически сохраняется / используется, может немного отличаться от значения, которое, как они думали, было введено.
Если под словом «подтвердить» вы подразумеваете «проверить текущее значение и привлечь внимание пользователя к любым проблемам», например, отобразив ошибку рядом с полем или изменив цвет фона, то нет проблем с использованием комбинации нескольких события, включая keyup, change, blur, paste, click:
$("field selector").on("keyup change blur paste cut click", function() { ... });
Это поймает большинство обычных случаев при вводе пользователем, а для случаев с буфером обмена или перетаскиванием вы, по крайней мере, знаете, что в худшем случае поле все равно будет проверено, когда пользователь покинет его. (Очевидно, вы не разрешите отправить, пока все ошибки не будут исправлены.)
Если вы обрабатываете нажатия клавиш и , которые охватывают случаи, когда пользователь удерживал клавишу нажатой, потому что большинство браузеров будут отправлять повторяющиеся события нажатия клавиши для этого.