8.8 - Crítica de Formulários

Os atributos onSubmit e onReset permitem associar funções aos eventos de submit ou reset do formulário, que serão ativadas quando os respectivos botões forem pressionados pelo usuário. É possível, através da função associada ao submit, fazer a verificação final nos campos do formulário, evitando o envio se ainda houver algum erro. Se em algum momento esta função retornar false, a ação correspondente será cancelada. Veja os exemplos a seguir:

Se a função de tratamento do evento retornar false, o formulário não será submetido.

onSubmit="return criticaFormulario();"

Se a função de tratamento do evento retornar false, o formulário não será apagado.

onReset="return confirm('Quer mesmo apagar tudo?');"

Este comportamento padrão pode ainda ser evitado em outras situações, como por exemplo, quando o usuário clica num hiperlink.

Exemplo de crítica

function criticar(formulario)
{
if ( formulario.nome.value== "" )// verifica se há erro no formulário
{
alert("Erro: campo nome não preenchido.");
return false;
}
return true;// Está ok, pode ser enviado
}
<form action="/cgi-bin/x" onSubmit="returncriticar(this)">
Nome: <input type="text" name="nome">
<input type="submit" value="Enviar">
</form>

Crítica campo a campo

Muitas vezes é conveniente acusar erros de preenchimento a cada campo que o usuário digita, ao invés de acusar todos de uma vez quando o formulário é enviado. Para isso é necessário utilizar o evento onchange no campo digitado, verificando sua integridade quando ele termina de ser digitado. Para forçar o usuário a permanecer no campo incorreto podemos utilizar o método focus().

Normalmente as mesmas críticas precisarão ser repetidas quando o formulário for enviado pois é necessário verificar o preenchimento de campos obrigatórios.