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