В форме делаете input[type="text"] и button[type="submit"]. На форму
вешаете обработчик события
submit, в нем берете у инпута value и проверяете его на правильность.
Если правильно, из обработчика делаете return true, если нет —
event.preventDefault() (по этой ссылке пример того, чего вы хотите), показываете ошибку и return false.
Если проверка на правильность асинхронная (AJAX-запрос на сервер), то все будет посложнее, но основной принцип такой же — перехватываем submit и проверяем.