Если не использовать кривую браузерную валидацию, написать свою собственную, что бы запускалась в зависимости от необходимого набора действий, как на кейапы, так на блюры и тд и тп, ну и в процессе сабмита само собой... Можно поставить коллекции валидаций, по единых событиях у полей, а не вешать 100500 событий на блюр или кейап каждого поля, а потом только по необходимости добавлять или удалять таковы из списка, ну или вешать каждый отдельных обработчик... вообще полет фантазии большой и зависит от объёмов да и потребностей как именно валидировать поля.