Ola!
Velha discussão para quem programa em HTML.
Tudo deve ser REAVALIADO na FUNÇÂO que salva os dados, não somente do GET ou IMPUT no caso do HTML.
Tem professores que não acha legal VALIDAR os GETs/IMPUTs ali na hora quando SAI DO FOCO <On lost focus>
A Clausula REQUIRED do HTML que força a pessoa digitar no FORM foi criada agora no HTML 5. Mas ela só é executada quando teclamos <SUBMIT> no FORM.
Todo o FORM com o INPUT e FLAG <required> é avaliado somente quando pressionamos <ENVIAR/GRAVAR/SUBMIT>.
<form action="/action_page.php">
Username: <input type="text" name="usrname" required>
<input type="submit">
</form>
Dessa forma penso ser a melhor, até o momento.
Tem as mascaras que só aceitam Letras/Números... neste caso é uma formatação, mas o "FOCO" não fica preso.
valido no click do botão Salvar no meu caso.
Vejo que está de acordo ai com as propostas de outras linguagens.
Saudações,
Itamar M. Lins Jr.