Правила для всех полей и все опции формы хранятся на сервере и передаются в браузер в фазе рендера формы.
Кнопка Отправить не активна, пока все необходимые поля не заполнены правильно.
Проверка правильности идет непосредственно во время ввода/изменения полей формы.
Когда все правильно, юзер может нажать Отправить.
В фазе получения данных, серверный скрипт еще раз проверяет правильность по тем же самым правилам.
Если не все правильно, сервер выдает текст с инфой о том, что неправильно.
Если все правильно, сервер выдает текст поздравления, или, если форма редактируемая - выдает данные для полей.
Приступай к реализации.