Javascript funciona no IE e não funciona no Firefox
formulário html e script javascript.
o script impede q digite números no campo "nome", q digite letras nos campos "telefone", "celular", "cnpj" e "cpf", coloca máscara nos campos "telefone", "celular", "cnpj" e "cpf", e valida os campos "cnpj", "cpf" e "email".
funciona perfeitamente no IE
mas no Firefox...
é possível digitar letras ou números no campo "nome", "cpf" e "cnpj", e não coloca máscara nos campos "cnpj" e "cpf".
qual é o problema?? pq funciona no IE e não funciona no Firefox??
segue o script:
<script language="javascript">
// 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 ao CPF
function MascaraCPF(cpf){
if(mascaraInteiro(cpf)==false){
event.returnValue = false;
}
return formataCampo(cpf, '000.000.000-00', event);
}
//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 && cpf != ""){
alert('CPF Invalido!');
Objcpf.focus();
}
}
//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 && cnpj != ""){
alert('CNPJ Invalido!');
ObjCnpj.focus();
}
}
//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;
}
}
function ValidaEmail(){
var obj = eval("document.cadastrocliente.email");
var txt = obj.value;
if ((txt.length != 0) && ((txt.indexOf("@") < 1) || (txt.indexOf('.') < 7)))
{
alert('Este email parece ser um email inválido. Por favor digite outro!');
obj.focus();
}
}
function Valida(){
var nome = document.cadastrocliente.nome.value;
var telefone = document.cadastrocliente.telefone.value;
var celular = document.cadastrocliente.celular.value;
var cnpj = document.cadastrocliente.cnpj.value;
var cpf = document.cadastrocliente.cpf.value;
var email = document.cadastrocliente.email.value;
if(nome != "" && telefone != "" && celular != "" && documento != "" && endereco != "" && bairro != "" && cidade != "" && pergunta != "x" && resposta != "" && email != "" && senha != "" && confirmaSenha != ""){
document.cadastrocliente.envia.disabled = false;
return
}
}
//função que restringe caracteres digitados. Números ou letras
function valida_digitos(Ncampo)
{
//caracteres permitidos
if(Ncampo=="nome")
er=/[0-9]/;
if(Ncampo=="telefone" || Ncampo=="celular")
er=/[a-z]/;
digito=document.getElementById(Ncampo).value;
var tempor;
for (var i=0;i<digito.length; i++) {
tempor = digito.substring(i,i+1);
//se digitos não igual aos caracteres informado na variavel digitos, então é deletado
if (er.test(digito)) {
document.getElementById(Ncampo).value=digito.substring(0,digito.length-1);
return false;
break;
}
}
}
function txtBoxFormat(objeto, sMask, evtKeyPress) {
var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
if(document.all) { // Internet Explorer
nTecla = evtKeyPress.keyCode;
} else if(document.layers) { // Nestcape
nTecla = evtKeyPress.which;
} else {
nTecla = evtKeyPress.which;
if (nTecla == 8) {
return true;
}
}
sValue = objeto.value;
// Limpa todos os caracteres de formatação que
// já estiverem no campo.
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( "-", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( ".", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( "/", "" );
sValue = sValue.toString().replace( ":", "" );
sValue = sValue.toString().replace( ":", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( "(", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( ")", "" );
sValue = sValue.toString().replace( " ", "" );
sValue = sValue.toString().replace( " ", "" );
fldLen = sValue.length;
mskLen = sMask.length;
i = 0;
nCount = 0;
sCod = "";
mskLen = fldLen;
while (i <= mskLen) {
bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
if (bolMask) {
sCod += sMask.charAt(i);
mskLen++;
}
else {
sCod += sValue.charAt(nCount);
nCount++;
}
i++;
}
objeto.value = sCod;
if (nTecla != 8) { // backspace
if (sMask.charAt(i-1) == "9") { // apenas números...
return ((nTecla > 47) && (nTecla < 58)); }
else { // qualquer caracter...
return true;
}
}
else {
return true;
}
}
</script>
<form action="cadastrando cliente.php" method="post" name="cadastrocliente">
Nome
<input type="text" name="nome" onKeyPress="valida_digitos('nome')" onKeyUp="return Valida()" maxlength="50" size="50" /><br><br>
Telefone
<input type="text" name="telefone" onKeyDown="valida_digitos('telefone')" onKeyPress="return txtBoxFormat(this, '(99)9999-9999', event);" onKeyUp="return Valida()" maxlength="13" size="20" /><br><br>
Celular
<input type="text" name="celular" onKeyDown="valida_digitos('celular')" onKeyPress="return txtBoxFormat(this, '(99)9999-9999', event);" onKeyUp="return Valida()" maxlength="13" size="20" /><br><br>
CNPJ
<input type="text" name="cnpj" onKeyPress="MascaraCNPJ(cadastrocliente.cnpj);" onBlur="ValidarCNPJ(cadastrocliente.documento);" onKeyUp="return Valida()" maxlength="18" size="50" /><br><br>
CPF
<input type="text" name="documento" onKeyPress="MascaraCPF(cadastrocliente.documento);" onBlur="ValidarCPF(cadastrocliente.cpf);" onKeyUp="return Valida()" maxlength="14" size="50" /><br><br>
Email
<input type="text" name="email" onKeyUp="return Valida()" onBlur="ValidaEmail();" maxlength="30" size="50" /><br><br>
</form>Discussão (5)
Carregando comentários...