Esto:
Colócalo justo antes de la etiqueta
</body>
, de este modo, los elementos se verán afectados por el código JS. Sucede que la carga del código ocurre de arriba hacia abajo, por lo que al cargar el código JS antes que los elementos del DOM, toda la validación que hicimos no servirá ya que no puede afectar a elementos que aún no han cargado.
Saludos