No artigo anterior (
Consistindo um formulário com JavaScript)
vimos o uso das rotinas isEmpty(), isNumber() e isEmail().
Agora vamos explicar como consistir os campos de CPF e CNPJ de seu formulário.
Para realizar esta consistência vamos utilizar 2 scripts que encontram-se na área
de script. São eles:
Tanto o número de CPF quanto o CNPJ possuem um algorítimo de verificação que chamamos
de Módulo 11 e gera os dois últimos algarismos que compõe um CPF e CNPJ. Isto ocorre
apenas por uma medida de segurança, pois desta forma é possível verificar se um número
realmente corresponde a um CPF ou um CNPJ.
Nossa rotina isCPFCNPJ verifica os dois tipos de documentos, ou seja se o usuário
digitar um CPF ou um CNPJ no campo a rotina é capaz de selecionar o tipo de consistência
e realizar o cálculo de Módulo 11 automaticamente. Mais uma vez reforço que a
consistência em JavaScript não é aconselhada em casos onde a segurança deva ser rígida,
recomendo utilizar este tipo de rotina em formulário de envio de e-mail ou então áreas
administrativas de sites, onde o usuário já passou por um login e senha seguros ou então
intranets.
Adicione a seguinte linha ao seu html:
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript" SRC="isEmpty.js"></script>
<SCRIPT LANGUAGE="JavaScript" SRC="isCPFCNPJ.js"></script>
</HEAD>
Após adicionar estas linhas será possível acessar a função isCPFCNPJ(). Caso esteja
usando outras rotinas JavaScript lembre-se de acrescentá-las dentro da TAG HEAD.
Agora vamos adicionar uma verificação de CPF e CNPJ:
<head>
<SCRIPT LANGUAGE="JavaScript">
function checkForm(){
if(!isCPFCNPJ(document.formTeste.cpfcnpj.value,0)){
alert("Por favor informe um CPF/CNPJ válido");
document.formTeste.cpfcnpj.focus();
return false;
}
return true;
}
</script>
</head>
Lembre-se que nossa rotina se chama isCPFCNPJ, ou seja, é CPF ou CNPJ então seu
retorno é verdadeiro apenas quando for um número válido e neste caso como queremos
verificar se ele é falso, então devemos acrescentar o operador !, que
significa NOT e realiza a negação da expressão que vem após.
Caso você tenha um campo que deve receber apenas CPF ou CNPJ então sugiro que limite
o número de caracteres na entrada de dados, ou seja, utilize o atributo MAXLENGTH no
campo.
Para CPF:
<INPUT TYPE=TEXT SIZE=14 MAXLENGTH=14>
Para CNPJ:
<INPUT TYPE=TEXT SIZE=18 MAXLENGTH=18>
E utilize a função passando parâmetro 1 para CPF e 2 para CNPJ:
<head>
<SCRIPT LANGUAGE="JavaScript">
function checkForm(){
if(!isCPFCNPJ(document.formTeste.cpfcnpj.value,1)){
alert("Por favor informe um CPF válido");
document.formTeste.cpfcnpj.focus();
return false;
}
return true;
}
</script>
</head>
Fontes para consulta sobre JavaScript:
Se você estiver utilizando o Mozilla ou Netscape lembre-se de instalar o
JavaScript Debugger, pois ele facilitará muito na hora de buscar erros dentro do Script.
[]s
Celso Goya
moinho.net