Desde 1995, tenho trabalho diretamente com SIW - Sistemas com Interface Web e a parte mais chata do processo do desenvolvimento de qualquer sistema, é o trabalho com formulários. Sejam formulários para um pequeno site, como para um grande e complexo sistema.
Todos formulários requerem validações, formatações e dependendo da sua complexidade, muitos eventos vão precisar ser processados. No Browser, todas essas validações precisam ser em JavaScript, o que requer um certo conhecimento não somente da linguagem, mas também do DOM, objetos entre outras coisas.
Pensando em facilitar principalmente a minha vida, eu procurei criar ferramentas para acelerar o meu processo de desenvolvimento, como geradores de programas e até um Framework para SIW (www.hipertools.com.br). Todas as facilidades que eu fiz foram baseadas no servidor e não me satisfizeram. Então em 2001, iniciei o que chamei de FormValidation que hoje estou compartilhando com todos vocês.
Procurei desenvolver um ambiente que fosse 100% no cliente, que não fosse necessário muitas coisas para implementar e principalmente a modularidade de implementar em outros ambientes. Veja o exemplo temporário na URL abaixo e espero comentários, sugestões, críticas e apoio para melhorar esse ambiente.
Obs: Esta versão funciona somente para o IE 5.5SP1 ou superior.
Obs 2: Recomendo ver como que o código HTML foi implementado.
Não recomendo o uso nos seus projetos, porque a versão que está no site ainda não está totalmente testada, bem como estou finalizando algumas melhorias, ajuste e procurando:
Sugestões para melhoria;
Compatibiliza-lo para o uso em outros Browsers, como o Mozilla e Opera;
Validar os bugs que possam ter;
Criar um tutorial para o seu uso;
Criar um wizard on-line de formulários;
Compatibiliza-lo com o XHTML;
E principalmente, saber se realmente a idéia é boa.
Se você tem alguma dica, sugestão e/ou quer participar, mande e-mail diretamente para mim no rubenzevallos@gmail.com
Obs 3: Mesmo depois de tudo que foi dito acima, você queria usar esse ambiente nos seus projetos, entre em contato comigo, para que eu possa passar os JavaScripts, mas logo, deverei coloca-lo no SourceForge.net e ele estará sob a GPL.
Obs 4: Para o uso efetivo durante o processo de desenvolvimento, recomendo fazer referência para o os JS que estão no meu computador, como por exemplo:
O FormValidation v.1.1 O FormValidation v.1.1, é uma forma avançada de validação de formulários, onde não é necessário configurações complexas para validar cada tipo de campo.
O sistema é baseado com a inclusão dos eventos na marcação Depois, a inclusão das linhas abaixo:
Cada tipo de marcação, tem novos parâmetros, que são utilizados para ativar as validações e outras opções.
Veja alguns exemplos de uso:
Validação de uma data padrão Brasileiro (MM/DD/AA ou MM/DD/AAAA)
Validação de E-Mail (obrigatório) Required="O E-Mail é obrigatório!" OnFocus="StatusTitle();" title="Digite EMail" onchange="FieldChanged()" EMail>
Validação de e-mail usando Regular Expression (obrigatório)
Validação do CPF (obrigatório, será normalizado e zeros serão acrescidos a esquerda)
Os INPUTs tem as seguinte facilidades: REQUIRED - Seleção obrigatória incluindo o ícone CEP - Validação e ajustes do CEP, dentro do padrão 99999 ou 99999-999 CPF - Validação e ajustes do CPF CNPJ - Validação e ajustes do CNPJ CPFCNPJ - Valida o CPF ou CNPJ e faz ajustes DateBR - Validação e ajustes das datas padrão Brasil (DD/MM/AA ou DD/MM/AAAA), já com ajuste do ano 2000 DateUS - Validação e ajustes das datas padrão Americano (MM/DD/AA ou MM/DD/AAAA), já com ajuste do ano 2000 EMail - Validação e ajustes de e-mail dentro do padrão (e-mail, e-mail@dominio, e-mail@dominio.ext e e-mail@dominio.ext.aa) Phone - Valida Telefone com ou sem código de área PhoneArea - Valida Telefone com código de área Time24 - Valida a hora padrão 24h TimeAMPM - Valida a hora padrão 12h AM/PM
RegExSeach - Faz busca com base no Regular Expression Search do JavaScript /expressão/flags g (global search for all occurrences of pattern) i (ignore case) m (multiline search)
Ajustes para os campos: UpperCase - Todos os caracteres serão ajustadas para maiúsculo. LowerCase - Todos os caracteres serão ajustadas para minúsculo. URLEncode - Codifica os caracteres de uma URL, como espaços, caracteres acentuados e outros RightTrim - Retira os espaços a direita LeftTrim - Retira os espaços a esquerda AllTrim - Retira os espaços a direita e esquerda LeadingZeroes - Complementa com zeros a esquerda, de acordo com a quantidade definida NormalizeString - Retorna somente caracteres A-Z, a-z e 0-9 NormalizeNumber - Retorna somente 0-9 ou - se tiver = true ou 1 NormalizeAccents - Retorna a string sem acentos NormalizeMoneyBR - Retorna somente 0-9, - e a , (vírgula) da casa decimal NormalizeMoneyUS - Retorna somente 0-9, - e a . (ponto) da casa decimal NormalizeAlpha - Retorna somente caracteres A-Z, a-z e espaço
Obs: Os DateBR e DateUS fazem ajustes automáticos nas datas. Se você digitar somente o dia ou dia e mês, ele ja faz a inclusão do mês e ano corrente, quando for o caso.
As datas também já estão ajustadas ao ano 2000, com referência no ano atual a 60 anos. Se você digitar 01/01/60. O ano será ajustado para 1966.
Os SELECTs tem as seguinte facilidades: Seleção ao teclar a inicial o conteúdo desejado, não somente a primeira letra REQUIRED - Seleção obrigatória incluindo o ícone
Os TEXTAREAs tem as seguinte facilidades: Limitador de tamanho Contador de quantidade de caracteres REQUIRED - Seleção obrigatória incluindo o ícone
Declaração: O conteúdo deste site, inclusive os textos, são pessoais e fundamentados exclusivamente nas experiências do Autor; não devendo portanto serem vistos e nem utilizados como orientação ou tratamento psicológico, terapêutico, psiquiátrico ou semelhante. A leitura, uso e indicação, em parte ou na totalidade, bem como as conseqüências ou resultados práticos pela utilização do mesmo, é de inteira responsabilidade do Leitor. Ao Autor não cabe nenhuma atribuição Legal por quaisquer alterações emocionais, intelectuais, sexuais ou de personalidade, ocorridas após a leitura dos textos aqui postados.