Никогда не удавалось понять, как это сделать без поездки туда и обратно, поэтому все зависит от вашей цели.
Если им нужно иметь javascript для продолжения, то я (в .net) сделал такие вещи, как отключение кнопки входа в систему на стороне сервера, затем включил ее на стороне клиента с помощью javascript и использовал тег noscript, чтобы показать ошибку сообщение.
Если это должно работать в любом случае, вы можете использовать прогрессивное улучшение и / или использовать js, чтобы установить скрытое поле, а затем установить переменную сеанса, но это означает, что вы не будете знать, пока они не дойдут до второго запроса .