Главная проблема это клиентская валидация. Ну и в дополнение к ней тут нет колокации кода. Форма знает про каждое поле и как оно должно валидироваться. Добавляем больше полей и получаем метод на 100+ строк с кучей ифов. А раз уж мы делаем клиентскую валидацию то валидировать надо внутри поля, а в форме только проверять что поле валидно.
слать запрос на каждый ввод символа? ну типа с дебаунсом, понятно, но все равно как-то чересчур как будто. Хотя, может, на серьезных проектах это разумно