Minha idéia inicial era escrever sobre a validação de campos de formulário, uma operação relativamente simples, com o uso da ferramenta AJAX. Mudei de rumo (fica para outra oportunidade, a ver se interessa) em função do que digo um pouco mais abaixo (vocês, certamente, vão descobrir) para abordar dois aspectos relacionados, que considero, como os principais e os mais importantes, sobre o assunto:
- Usabilidade;
- Validação do lado do servidor com a linguagem utilizada na aplicação em uso ou em desenvolvimento e/ou do lado do cliente com JavaScript.
Quanto ao primeiro item a boa prática recomenda que devemos fazer o possível (ou até o impossível) para impedir que erros ocorram. E, se por acaso, não puder ser feito procure informar (o “jeito” deixo por sua conta) a seus usuários os erros ocorridos tão logo possa.
No entanto, mesmo com as técnicas hoje existentes para evitar (será?) a situação e melhorar a interação com o usuário, é comum se deparar com formulários, as vezes até extensos, em que recebemos a resposta de erro após clicar no famigerado (nestes casos) botãozinho do Submit, Ok, Enviar ou qualquer outro nome que venha a ter. E o que é pior, retorna o erro com o formulário totalmente em branco.
Se o seu browser não estiver parametrizado com o autocomplete ou algo como no FF – Memorizar dados fornecidos a formulários e ao campo de pesquisa -, o único jeito é redigitar tudo. Só faço isso em caso de total interesse, mas mesmo assim desabafo: p#*% que p*&%@. Quando parametrizado basta digitar a(s) primeira(s) letra(s) ou número(s) e aparece a “janelinha” milagrosa para selecionar a informação o que, apenas, ameniza o desabafo.
Quem não passou por essa situação levante o dedo ou, se sim, desabafe nos comentários, mas com bastante calma, heim!
No WordPress, se você não tiver um plugin ou template com JavaScript/AJAX, a validação do formulário de contato, por exemplo, ocorre, como padrão, do lado do servidor. Pelo menos a experiência não é tão dolorosa pois ele retorna com a mensagem dos erros ocorridos e com a informação dos campos digitados anteriormente.
Aliás, foi esse fato que me motivou a escrever este artigo, quando resolvi testar o formulário de contato aqui do Viche. Ele faz exatamente como dito acima, só que as mensagens de erro estão escritas em inglês quando retorna. A mancada permanece só para “inglês ver”.
Resolvi, então, perambular por alguns blogs e sites dos quais assino o feeds (de famosos, pretendentes a, e nem tanto) e me deparei com situações como:
- Inexistência de formulário de contato (até aqui, tudo bem, a opção é de cada um. E viva a democracia!);
- Formulários com erros (literalmente);
- Formulários que criticam de forma eficiente, do lado do cliente, os campos Nome e E-Mail, mas deixam enviar (pelo menos não deu aviso) com o campo Mensagem em branco;
- Parceiros meus, que retornam a(s) mensagem(ns) de erro em inglês (boa companheiro!) ou mista (português-inglês ou vice-versa);
- Formulários que criticam todos os campos do lado do cliente com JavaScript (caixa de alerta), porém, quando desabilitei (o JavaScript, claro!) ficou “mudinho”, ou seja, não deu erro e nem mensagem de confirmação (se foi para a caixa postal do autor, sabe-se lá);
- Sem a adequada informação de quais campos são obrigatórios;
- Formulários que criticam apenas do lado do servidor, mas com mensagens de erro em português e a validação correta (meus parabéns).
Diante dos fatos apontados será o caso de se criar uma nova campanha, a do Formulator Validator Tabajara? Se não for o caso, dê uma testadinha básica no seu formulário de contato, desde que disponibilizado (óbvio!), e nos:
- informe em qual categoria acima você está; ou
- acrescente uma nova, a lista;
- alternativamente, você pode sugerir um nome para a campanha :-).
Para encerrar, sou a favor do e para a validação de formulário (veja item 2. no início do artigo), apesar do duplo esforço. E você, diga aí o que acha e qual a razão?
Micox
nov 30, 2006 @ 20:22:27
Sim, validação deve estar dos 2 lados: lado server e lado client.
Quem não quer perder usuários ou matá-los de raiva (principalmente os da conexao discada – lembro da minha época) DEVE efetuar a validação nos 2 lados.
Ótimo post :)