Ir para conteúdo

POWERED BY:

Arquivado

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

adilsonb

Bloquear letras

Recommended Posts

use:

function fcnOnlyNum() {	var caract = new RegExp(/^[0-9]+$/i);	var caract = caract.test(String.fromCharCode(event.keyCode));	if(!caract){		event.keyCode=0;		return;	}}

Uso:

<input type="text" name="campo" onKeyPress="fcnOnlyNum()">

Compartilhar este post


Link para o post
Compartilhar em outros sites

não... FF me atazana... é por causa do event.keyCodeno FF ele usa handler de event.faz uma pesquisa no fórum com: teclatem alguns exemplos falando como é no modo FF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano ou Fleury, poderiam me dar uma ajuda neste caso?

 

No IE está ok, mas no FF não.

 

Veja o código que estou utilizando abaixo:

 

<html><head><title>teste</title><script language="JavaScript">function fcnOnlyNum() {	var caract = new RegExp(/^[0-9]+$/i);	var caract = caract.test(String.fromCharCode(event.keyCode));	if(!caract){		event.keyCode=0;		return;	}}function FormataValor(campo,tammax,teclapres) {var tecla = teclapres.keyCode ? teclapres.keyCode : teclapres.which ? teclapres.which : teclapres.charCode;vr = document.anuncie[campo].value;vr = vr.replace( "/", "" );vr = vr.replace( "/", "" );vr = vr.replace( ",", "" );vr = vr.replace( ".", "" );vr = vr.replace( ".", "" );vr = vr.replace( ".", "" );vr = vr.replace( ".", "" );tam = vr.length;if (tam < tammax && tecla != 8){ tam = vr.length + 1; }if (tecla == 8 ){ tam = tam - 1; }if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ){if ( tam <= 2 ){document.anuncie[campo].value = vr; }if ( (tam > 2) && (tam <= 5) ){document.anuncie[campo].value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 6) && (tam <= 8) ){document.anuncie[campo].value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }}}</script></head><body>Exemplo de utilização:<form name="anuncie" id="anuncie">Valor R$:   <input name="valor" type="text" onKeyPress="fcnOnlyNum()" onKeyDown="FormataValor('valor', 13, event)" size="13" maxlength="10"></form></body></html>

Agradeço desde já.

 

Adilson

 

Tentei fazer da maneira abaixo, mas não funcionou também:

 

function fcnOnlyNum() {	var caract = new RegExp(/^[0-9]+$/i);	var vtecla = teclapres.keyCode ? teclapres.keyCode : teclapres.which ? teclapres.which : teclapres.charCode;	var caract = caract.test(String.fromCharCode(vtecla));	if(!caract){		vtecla="";		return;	}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano...

 

Deve estar havendo um erro de comunicação:

 

O script de formatação de valores está funcionando perfeitamente, tanto no IE quanto no FF.

 

O que não está funcionando é o bloqueio de caracteres que não sejam numeros...

 

Mesmo assim obrigado pela atenção.

 

Adilson

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim

 

function fcnOnlyNum(event) {	var caract = new RegExp(/^[0-9]+$/i);	var vtecla = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;	var caract = caract.test(String.fromCharCode(vtecla));	if(!caract){		if (event.keyCode) event.keyCode = 0;		if (event.which) event.which = 0;		if (event.charCode) event.charCode = 0;		return false;	}}

Uso:

<input type="text" name="campo" onKeyPress="return fcnOnlyNum(event)">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adriano e Fleury, obrigado pela ajuda.Adriano, não se estresse, já nos conhecemos de outros forums, não sou de ficar perguntando antes de pesquisar, é que realmente não encontrei no local indicado a função que necessitava.Você já me ajudou diversas vezes e sou muito grato por isso.OBS: o código do Adriano funcionou no IE e no FF, mas precisa usar onKeyPress="return Verifica(event);" na chamada do evento, sem o "return" ele avisa do erro mas mesmo assim insere o caracter.O código do Fleury continua funcionando apenas no IE, mas mesmo assim obrigado pela ajuda!Abraços,Adilson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei o meu código com base na sua resposta.Se tiver tempo, testa ela pra mim ok!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

testei tudo aqui e até descobri que não precisa definir ela como zero antes de retornar. Basta o return false;

 

<script>function fcnOnlyNum(event) {	var kCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;	var caract = new RegExp(/^[0-9]+$/i);	var caract = caract.test(String.fromCharCode(kCode));	if(!caract){		return false;	}}</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fleury e AdrianoNão queria reabrir este tópico, mas fiquei com uma dúvida no último script de bloqueio de caracteres que não sejam numeros.O backspace funciona no IE, mas não funciona no FF, alguma sugestão?Obrigado.

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.