Ir para conteúdo

POWERED BY:

Arquivado

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

webruno

Mascara de form com problema

Recommended Posts

E ai galera, beleza?

 

Seguinte to com um problema pra mascarar um form aqui, deem uma olhada no código a baixo:

 

function soNumeros( evtKeyPress ){	  var nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;	  //Permiti apenas os numeros, delete, backspace, e setas do teclado	  if ( ( nTecla > 47 && nTecla < 58 ) || nTecla == 8 || ( nTecla > 36 && nTecla < 41 ) || nTecla == 46 )	   return true;	  else return false;}

O problema esta no "nTecla == 46" que se refere ao delete... mas além de permitir o delete ele perrmite a tecla ponto ".".

 

Se eu tiro ele, beleza, bloqueia tudo certinho, mas não funca o delete.

 

Porque ta acontecendo isso?

 

Obrigado desde ja!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai galera, beleza?Seguinte to com um problema pra mascarar um form aqui, deem uma olhada no código a baixo:

function soNumeros( evtKeyPress ){	  var nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;	  //Permiti apenas os numeros, delete, backspace, e setas do teclado	  if ( ( nTecla > 47 && nTecla < 58 ) || nTecla == 8 || ( nTecla > 36 && nTecla < 41 ) || nTecla == 46 )	   return true;	  else return false;}
O problema esta no "nTecla == 46" que se refere ao delete... mas além de permitir o delete ele perrmite a tecla ponto ".".Se eu tiro ele, beleza, bloqueia tudo certinho, mas não funca o delete.Porque ta acontecendo isso?Obrigado desde ja!
Pelo que percebi. Voce deve estar utilizando o OnKeyDown para retornar.Utiliza o OnKeyPress e retira o nTecla == 46. Pq pelo q percebi ele é o codigo do PONTO.Ve se da certo.Abracos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mauyr, na real to usando no onkeypress mesmo. O ponto é a tecla 190 e o delete é a tecla 46. Vou colocar mais detalhes do código, quem puder ajudar agredço muito:

 

//-----------------------------------------------------// Verifica os caracteres no CPF / CNPJ e pula o campo//-----------------------------------------------------function putCpfCnpj( evtKeyPress, caminho ){	var fis_jur = document.adicionar.fis_jur.value; //campo oculto	if( soNumeros( evtKeyPress ) == true )	{		if ( fis_jur == 1 )		{			if ( caminho.value.length == 3 ) { caminho.value = caminho.value + "."; }			if ( caminho.value.length == 7 ) { caminho.value = caminho.value + "."; }			if ( caminho.value.length == 11 ) { caminho.value = caminho.value + "-"; }		}		if ( fis_jur == 2 )		{			if ( caminho.value.length == 2 ) { caminho.value = caminho.value + "."; }			if ( caminho.value.length == 6 ) { caminho.value = caminho.value + "."; }			if ( caminho.value.length == 10 ) { caminho.value = caminho.value + "/"; }			if ( caminho.value.length == 15 ) { caminho.value = caminho.value + "-"; }		}	}	else return false;}//----------//Pula campo//----------function pulaCampo ( caminho, condicao, novocaminho, evtKeyUp ){	var nTecla = (evtKeyUp.which) ? evtKeyUp.which : evtKeyUp.keyCode;	if ( caminho.value.length == condicao ) novocaminho.focus();}//----------//Só numeros//----------function soNumeros( evtKeyPress ){	var nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;	//Permiti apenas os numeros, delete, backspace, e setas do teclado	if ( ( nTecla > 47 && nTecla < 58 ) || nTecla == 8 || ( nTecla > 36 && nTecla < 41 ) || nTecla == 46 ) return true;	else return false;}

<input name="cpf_cnpj" id="cpf_cnpj" type="text" maxlength="14" class="cpfCnpj" onkeypress="return putCpfCnpj(event, document.adicionar.cpf_cnpj);" onkeyup="pulaCampo(document.adicionar.cpf_cnpj, document.adicionar.cpf_cnpj.maxLength, document.adicionar.endereco, event)" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, olhando a tabela ASCII vi que o 46 na real é o ponto... só não entendo porque no alert que coloquei no código pra capturar a tecla, o javascript me diz que o delete é 46 e o ponto 190, :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Thiago, mas não deu, to quase desistindo de habilitar o delete, vou deixar o pessoal só com o backspace mesmo (código 8). No IE funciona normal, só no FF que da esse problema.Sei la, é estressante mas é a vida de web né, heheObrigado, falou.

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.