Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

formigoni

Máscara

Recommended Posts

Boa tarde pessoal do fórum.

 

Gostaria de uma dica de vocês, claro, se puderem.

Tenho um script de máscaras para campos de formulários que é muito boa, mas não funciona no firefox, simplesmente não mascara nada.

O que eu posso fazer para que ela funcione no firefox?

 

Vejam o script:

 


	
	// 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(data1){
			if(mascaraInteiro(data1)==false){
					event.returnValue = false;
			}       
			return formataCampo(data1, '00/00/0000', event);
	}
	
	//adiciona mascara de data
	function MascaraData(data2){
			if(mascaraInteiro(data2)==false){
					event.returnValue = false;
			}       
			return formataCampo(data2, '00/00/0000', event);
	}
	
	//adiciona mascara ao telefone
	function MascaraTelefone(telefone1){  
			if(mascaraInteiro(telefone1)==false){
					event.returnValue = false;
			}       
			return formataCampo(telefone1, '(00) 0000-0000', event);
	}
	
	//adiciona mascara ao telefone
	function MascaraTelefone(telefone2){  
			if(mascaraInteiro(telefone2)==false){
					event.returnValue = false;
			}       
			return formataCampo(telefone2, '(00) 0000-0000', event);
	}
	
	//adiciona mascara ao telefone
	function MascaraFax(fax){  
			if(mascaraInteiro(fax)==false){
					event.returnValue = false;
			}       
			return formataCampo(fax, '(00) 0000-0000', event);
	}
	
	//adiciona mascara ao telefone
	function MascaraCelular(Celular){  
			if(mascaraInteiro(Celular)==false){
					event.returnValue = false;
			}       
			return formataCampo(Celular, '(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 1
	function ValidaTelefone(telefone1){
			exp = /\(\d{2}\)\ \d{4}\-\d{4}/
			if(!exp.test(telefone1.value))
					alert('Numero de Telefone Invalido');
	}
	
	//valida telefone 2
	function ValidaTelefone(telefone2){
			exp = /\(\d{2}\)\ \d{4}\-\d{4}/
			if(!exp.test(telefone2.value))
					alert('Numero de Telefone Invalido');
	}
	
	//valida telefone
	function ValidaFax(fax){
			exp = /\(\d{2}\)\ \d{4}\-\d{4}/
			if(!exp.test(fax.value))
					alert('Numero do Fax é Invalido');
	}
	
	//valida telefone
	function ValidaTelefone(celular){
			exp = /\(\d{2}\)\ \d{4}\-\d{4}/
			if(!exp.test(celular.value))
					alert('Numero do Celular é 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(data1){
	  exp = /\d{2}\/\d{2}\/\d{4}/
		if(!exp.test(data1.value)){
			data1.value = "";
			alert('Data Invalida!');
			data1.select();          
			}
		}
		
	//valida data
	function ValidaData(data2){
	  exp = /\d{2}\/\d{2}\/\d{4}/
		if(!exp.test(data2.value)){
			data2.value = "";
			alert('Data Invalida!');
			data2.select();          
			}
		}*/
	
	//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--;
			}       
			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.keyCode < 48 || event.keyCode > 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; 
			}
	}

Já fiz muitos testes mas infelizmente todos sem sucesso.

Valeu e fiquem na paz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme o aviso existente no fórum de origem deste post, não é permitida a postagem de dúvidas nesta área, motivo pelo qual este tópico será movido para o fórum principal deste assunto.

 

Tópico Movido

 

Origem: Laboratório de scripts (Javascript / DHTML) http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Destino: Javascript / DHTML

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso máscaras com ER:

/* Máscaras ER */
function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}
function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}
function mcep(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") 	//Esse é tão fácil que não merece explicações
    return v
}
function mtel(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}
function cnpj(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}
function mcpf(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                             //de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}
function mdata(v){
    v=v.replace(/\D/g,"");                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1/$2");       
    v=v.replace(/(\d{2})(\d)/,"$1/$2");       
                                             
    v=v.replace(/(\d{2})(\d{2})$/,"$1$2");
    return v;
}
function mtempo(v){
    v=v.replace(/\D/g,"");                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{1})(\d{2})(\d{2})/,"$1:$2.$3");	
    return v;
}
function mhora(v){
    v=v.replace(/\D/g,"");                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})(\d)/,"$1h$2");       
    return v;
}
function mrg(v){
    v=v.replace(/\D/g,"");					//Remove tudo o que não é dígito
	v=v.replace(/(\d)(\d{7})$/,"$1.$2");	//Coloca o . antes dos últimos 3 dígitos, e antes do verificador
	v=v.replace(/(\d)(\d{4})$/,"$1.$2");	//Coloca o . antes dos últimos 3 dígitos, e antes do verificador
	v=v.replace(/(\d)(\d)$/,"$1-$2");		//Coloca o - antes do último dígito
    return v;
}
function mnum(v){
    v=v.replace(/\D/g,"");					//Remove tudo o que não é dígito
    return v;
}
e para chamar elas, é:

CEP: <input type="text" name="cep" onkeypress="mascara(this, mcep)" size="10" maxlength="9" value="" />
Apenas alterando o nome da máscara, que é o segundo parâmetro da função mascara().

Funciona em todos os navegadores em que testei.

 

Não me lembro o site de que peguei as primeiras máscaras dai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.