Ir para conteúdo
Fórum Script Brasil
  • 0

Script Para Colocar Pontos E Vírgulas


marcelolima

Pergunta

Oi povo.. é o seguinte:

vi em algumas páginas que é possível ir digitando e na medida q vai digitando, coloca-se automaticamente os pontos e as vírgulas, até formar o valor certo.

Exemplo:

se o cara digitar 1 ... já muda para 1,00

" 12... 12,00

1000... 1.000,00

2000121... 2.000.121,00

mas isso tem que ser no mesmo tempo q o cara digita...

Além disso, queria bloquear o campo para só aceitar números...

Alguém pode me ajudar???

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Marcelo,

tenho este script, veja se lhe é útil:

Ps.: Juntei as duas funções que você precisa

<script language=javascript>
function BlockKeybord()
{
if((event.keyCode < 48) || (event.keyCode > 57))
{
event.returnValue = false;
}
}

function troca(str,strsai,strentra)
{
while(str.indexOf(strsai)>-1)
{
str = str.replace(strsai,strentra);
}
return str;
}

function FormataMoeda(campo,tammax,teclapres,caracter)
{
if(teclapres == null || teclapres == "undefined")
{
var tecla = -1;
}
else
{
var tecla = teclapres.keyCode;
}

if(caracter == null || caracter == "undefined")
{
caracter = ".";
}

vr = campo.value;
if(caracter != "")
{
vr = troca(vr,caracter,"");
}
vr = troca(vr,"/","");
vr = troca(vr,",","");
vr = troca(vr,".","");

tam = vr.length;
if(tecla > 0)
{
if(tam < tammax && tecla != 8)
{
tam = vr.length + 1;
}

if(tecla == 8)
{
tam = tam - 1;
}
}
if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105)
{
if(tam <= 2)
{ 
campo.value = vr;
}
if((tam > 2) && (tam <= 5))
{
campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 6) && (tam <= 8))
{
campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 9) && (tam <= 11))
{
campo.value = vr.substr(0, tam - 8) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 12) && (tam <= 14))
{
campo.value = vr.substr(0, tam - 11) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 15) && (tam <= 17))
{
campo.value = vr.substr(0, tam - 14) + caracter + vr.substr(tam - 14, 3) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
}
}

	function maskKeyPress(objEvent) 
	{
   var iKeyCode;  	
   iKeyCode = objEvent.keyCode;  	
   if(iKeyCode>=48 && iKeyCode<=57) return true;
   return false;
	}
</script>
e no campo:
<INPUT TYPE="Text" NAME="texto" SIZE="10" MAXLENGTH="10" onKeydown="FormataMoeda(this,10,event)" onkeypress="return maskKeyPress(event)">

Link para o comentário
Compartilhar em outros sites

  • 0

Marcelo, eu testei aqui e funcinou certinho. Mas como você disse que não conseguiu faça assim, copie exatamente o texto aqui e salve o arquivo. Daí é só rodar.

<script language=javascript>
function BlockKeybord()
{
if((event.keyCode < 48) || (event.keyCode > 57))
{
event.returnValue = false;
}
}

function troca(str,strsai,strentra)
{
while(str.indexOf(strsai)>-1)
{
str = str.replace(strsai,strentra);
}
return str;
}

function FormataMoeda(campo,tammax,teclapres,caracter)
{
if(teclapres == null || teclapres == "undefined")
{
var tecla = -1;
}
else
{
var tecla = teclapres.keyCode;
}

if(caracter == null || caracter == "undefined")
{
caracter = ".";
}

vr = campo.value;
if(caracter != "")
{
vr = troca(vr,caracter,"");
}
vr = troca(vr,"/","");
vr = troca(vr,",","");
vr = troca(vr,".","");

tam = vr.length;
if(tecla > 0)
{
if(tam < tammax && tecla != 8)
{
tam = vr.length + 1;
}

if(tecla == 8)
{
tam = tam - 1;
}
}
if(tecla == -1 || tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105)
{
if(tam <= 2)
{ 
campo.value = vr;
}
if((tam > 2) && (tam <= 5))
{
campo.value = vr.substr(0, tam - 2) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 6) && (tam <= 8))
{
campo.value = vr.substr(0, tam - 5) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 9) && (tam <= 11))
{
campo.value = vr.substr(0, tam - 8) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 12) && (tam <= 14))
{
campo.value = vr.substr(0, tam - 11) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
if((tam >= 15) && (tam <= 17))
{
campo.value = vr.substr(0, tam - 14) + caracter + vr.substr(tam - 14, 3) + caracter + vr.substr(tam - 11, 3) + caracter + vr.substr(tam - 8, 3) + caracter + vr.substr(tam - 5, 3) + ',' + vr.substr(tam - 2, tam);
}
}
}

	function maskKeyPress(objEvent) 
	{
   var iKeyCode;  	
   iKeyCode = objEvent.keyCode;  	
   if(iKeyCode>=48 && iKeyCode<=57) return true;
   return false;
	}
</script>

<INPUT TYPE="Text" NAME="texto" SIZE="10" MAXLENGTH="10" onKeydown="FormataMoeda(this,10,event)" onkeypress="return maskKeyPress(event)">

Quanto ao form, você viu que não precisa dele pra faze-lo rodar, será necessário para outras finalidades, mas daí é só implementar.

Link para o comentário
Compartilhar em outros sites

  • 0

brother

esquece o que eu falei acima...

fiz um teste...

e o campo que eu coloquei pra bloquear letras e colocar os pontos e as vírgulas...

quando passa para a outra página

e eu dou um Request.querystring("ValorContrato"), ele não imprime nada

ou seja, não tá passando valor nenhum pra lá...

entende??

eu estou digitando.. por exemplo, 100000... daí ele separa certinho 1.000,00, mas quando ele joga esse valor pra outra página... parece que o campo não tem valor algum!

vlw!

Link para o comentário
Compartilhar em outros sites

  • 0

Ahhhhh então Marcelo...

daí sim vem o form, eu achei que você só quisesse o script que fizesse a formatação

ai seria, exemplo (em ASP):

' aqui você cola o script da formatação
.
.
.
<form method="post" action="tela2.asp" name="formulario">
<INPUT TYPE="Text" NAME="texto" SIZE="10" MAXLENGTH="10" onKeydown="FormataMoeda(this,10,event)" onkeypress="return maskKeyPress(event)">
<input type="submit" name="botao" value="Enviar">
</form>
ai na tela2.asp você manda imprimir a variável:
<% response.write request.form("texto") %>

ok? wink.gif

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...