Ir para conteúdo

POWERED BY:

Arquivado

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

daniel.cafonso

Aceitar somente números

Recommended Posts

Olá pessoal, beleza?

 

Seguinte, tenho q permitir q o usuário digite somente números em um campo.

Estou fazendo o seguinte...

 

function numero(e) {	if (window.event) //IE	{	 tecla = e.keyCode;	}	else if (e.which) //FF	{	 tecla = e.which;	}	if (tecla != 8 || tecla < 48 || tecla > 57) return ((tecla > 47) && (tecla < 58)) //Aceita de 48 à 57 (números)	{	 return true;	}   }

no htm fica assim..

 

 

 

<input........ onkeypress="return numero(event)" />

No IE funciona normalmente, mas no FF caso o usuário digite errado, não dá pra apagar...

 

Oq está errado no JS? No FF é (e.which) mesmo?

 

Obrigado.

 

[]'s

 

 

 

Daniel Carneiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.. não dá nenhuma mensagem de erro..Ele abre normalmente, mas ao digitar um número e querer apagar, tanto o BackSpace como o Delete não funciona...O cursor fica piscando no final do último número digitado..Já no IE não tem esse problema...Instalei o Firebug aki e não dá erro nenhum..Obrigado.[]'sDaniel Carneiro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Muito obrigado pelo script, estava louco atrás de algo assim... já havia encontrado um muito parecido, mas não funcionava com FF, este pelo menos funciona, só não apaga e volta nas teclas < e >, ou melhor, não apagava..

 

Não entendo nada de JS mas fiz uma junção dos códigos achados e acabei chegando nisto.

function SoNumero(e) {	if (window.event) //IE	{	 tecla = e.keyCode;	}	else if (e.which) //FF	{	 tecla = e.which;		if (tecla == 8) event.keyCode = 0;	}	if (tecla != 8 || tecla < 48 || tecla > 57) return ((tecla > 47) && (tecla < 58)) //Aceita de 48 à 57 (números)	{	 return true;	}   }

 

Perceba o Cód. que faz ser possivel deletar ou apagar.

if (tecla == 8) event.keyCode = 0;
Estou procurando uma tabela para saber que n° corresponde a cada tecla do teclado para tentar utilizar o mesmo código para habilitar as setas.

 

Mais uma vez obrigado daniel.cafonso

 

Espero ter ajudado ^^

 

abs

 

-----------------------------------------------

-----------------------------------------------

 

Bom achei o q precisava, vai o link de uma pagina que dá o n° da tecla precionada http://www.imasters.com.br/forum/lofiversi...hp/t217375.html

 

Bom o código ESTÁ assim: (parece bem funcional plz testem)

function SoNumero(e) {	if (window.event) //IE	{	 tecla = e.keyCode;	}	else if (e.which) //FF	{	 tecla = e.which;		}	if (tecla == 8 || tecla == 13) // Aceita BackSpace	 {	 event.keyCode = 0; 	 } else if (tecla < 40 && tecla > 37) // Aceita Setas	 {	 event.keyCode = 0; 	 }	if (tecla != 8 || tecla < 48 || tecla > 57) return ((tecla > 47) && (tecla < 58)) //Aceita de 48 à 57 (números)	{	 return true;	}   }
Testem e postem ai se está mesmo funcionanto totalmente e se tem alguma modificação..

 

Edit: coloquei também o ENTER, achei importante.

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom o código ESTÁ assim: (parece bem funcional plz testem)

function SoNumero(e) {	if (window.event) //IE	{	 tecla = e.keyCode;	}	else if (e.which) //FF	{	 tecla = e.which;		}	if (tecla == 8 || tecla == 13) // Aceita BackSpace	 {	 event.keyCode = 0; 	 } else if (tecla < 40 && tecla > 37) // Aceita Setas	 {	 event.keyCode = 0; 	 }	if (tecla != 8 || tecla < 48 || tecla > 57) return ((tecla > 47) && (tecla < 58)) //Aceita de 48 à 57 (números)	{	 return true;	}   }
Testei o seu codigo no IE7 e esta funcionando 100%mas quanto fui testar no firefoxele aceitou o caracter "&"procurei o keycode dele é descobri que era o 26, tentei colocar no codigo mas nao funcionoualguma sugestão?Um Abraço

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.