Validação de Campos (CNPJ, CPF, CEP e outros)
Olá, pessoal!
Bom, peguei este código que valida campos de formulários, como cpf, cnpj, cep, data, e tel.
Percebi que o código é profissional, mas não funciona em outros navegadores, apenas no IE.
Será que alguém poderia me ajudar a fazê-lo funcionar em outros navegadores?
Acredito que seja um bom código para que outras pessoas que precisem validar seus formulários possam utilizar, porém funcionando em todos os navegadores.
Este código faz a máscara e a validação dos campos.
Espero que vocês possam me ajudar!
Muito Obrigada.
Segue abaixo o código e a forma que ele é utilizado.
No HTML
----------------------------------------------------------------------------------
<input name="cnpj" type="text" size="20" maxlength="18" onKeyPress="MascaraCNPJ(this);" onBlur="ValidarCNPJ(this);">
[b]No JS[/b]
----------------------------------------------------------------------------------
// JavaScript Document
//adiciona mascara de cnpj
function MascaraCNPJ(cnpj){
if(mascaraInteiro(cnpj)==false){
event.returnValue = false;
}
return formataCampo(cnpj, '00.000.000/0000-00', event);
}
//adiciona mascara de cep
function MascaraCep(cep){
if(mascaraInteiro(cep)==false){
event.returnValue = false;
}
return formataCampo(cep, '00.000-000', event);
}
//adiciona mascara de data
function MascaraData(data){
if(mascaraInteiro(data)==false){
event.returnValue = false;
}
return formataCampo(data, '00/00/0000', event);
}
//adiciona mascara ao telefone
function MascaraTelefone(tel){
if(mascaraInteiro(tel)==false){
event.returnValue = false;
}
return formataCampo(tel, '(00) 0000-0000', event);
}
//adiciona mascara ao CPF
function MascaraCPF(cpf){
if(mascaraInteiro(cpf)==false){
event.returnValue = false;
}
return formataCampo(cpf, '000.000.000-00', event);
}
//valida telefone
function ValidaTelefone(tel){
exp = /\(\d{2}\)\ \d{4}\-\d{4}/;
if(!exp.test(tel.value))
alert('Numero de Telefone Invalido!');
}
//valida CEP
function ValidaCep(cep){
exp = /\d{2}\.\d{3}\-\d{3}/;
if(!exp.test(cep.value))
alert('Numero de Cep Invalido!');
}
//valida data
function ValidaData(data){
exp = /\d{2}\/\d{2}\/\d{4}/;
if(!exp.test(data.value))
alert('Data Invalida!');
}
//valida o CPF digitado
function ValidarCPF(Objcpf){
var cpf = Objcpf.value;
exp = /\.|\-/g;
cpf = cpf.toString().replace( exp, '' );
var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
var soma1=0, soma2=0;
var vlr =11;
for(i=0;i<9;i++){
soma1+=eval(cpf.charAt(i)*(vlr-1));
soma2+=eval(cpf.charAt(i)*vlr);
//vlr–;
vlr--;
}
soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
soma2=(((soma2+(2*soma1))*10)%11);
var digitoGerado=(soma1*10)+soma2;
if(digitoGerado!=digitoDigitado)
alert('CPF Invalido!');
}
//valida numero inteiro com mascara
function mascaraInteiro(){
if (event.which < 48 || event.which > 57){
event.returnValue = false;
return false;
}
return true;
}
//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
var cnpj = ObjCnpj.value;
var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
var dig1= new Number;
var dig2= new Number;
exp = /\.|\-|\//g;
cnpj = cnpj.toString().replace( exp, '' );
var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
for(i = 0; i<valida.length; i++){
dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);
dig2 += cnpj.charAt(i)*valida[i];
}
dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
if(((dig1*10)+dig2) != digito)
alert('CNPJ Invalido!');
}
//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) {
var boleanoMascara;
var Digitato = evento.keyCode;
exp = /\-|\.|\/|\(|\)| /g;
campoSoNumeros = campo.value.toString().replace( exp, '' );
var posicaoCampo = 0;
var NovoValorCampo='';
var TamanhoMascara = campoSoNumeros.length;
if (Digitato != 8 ) { // backspace
for(i=0; i<= TamanhoMascara; i++) {
boleanoMascara = ((Mascara.charAt(i) == '-') || (Mascara.charAt(i) == '.')
|| (Mascara.charAt(i) == '/'))
boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == '(')
|| (Mascara.charAt(i) == ')') || (Mascara.charAt(i) == ' '))
if (boleanoMascara) {
NovoValorCampo += Mascara.charAt(i);
TamanhoMascara++;
}else {
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
posicaoCampo++;
}
}
campo.value = NovoValorCampo;
return true;
}else {
return true;
}
}
// END JavaScript Document
Discussão (1)
Carregando comentários...