Ir para conteúdo

Arquivado

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

Borel

Formatar campo

Recommended Posts

Colocar cada valor separada no mesmo campo não dá. Só se você colocasse os espaços mas ficaria muito porco.Quanto ao colocar R$, coloca o script aí pra eu modificar pra você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí está o código. Gostaria que tivesse o R$ antes dos números.

 

Muito obrigado meu amigo.

 

 

<html><head><title>teste</title><script language="JavaScript">function FormataValor(campo,tammax,teclapres) {var tecla = teclapres.keyCode;vr = document.form[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.form[campo].value = vr; }if ( (tam > 2) && (tam <= 5) ){document.form[campo].value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 6) && (tam <= 8) ){document.form[campo].value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 9) && (tam <= 11) ){document.form[campo].value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 12) && (tam <= 14) ){document.form[campo].value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 15) && (tam <= 17) ){document.form[campo].value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );}}}</script></head><body><form method="POST" name="form"><p><input type="Text" name="valor" size="23" maxlength="17" onKeyDown="FormataValor('valor', 13, event)"></p></form></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o código... Com esse código de formatação vai ser bem díficil de colocar o R$ na frente ao digitar.

Então coloquei pra colocar/tirar quando der foco ou blur;

 

<html><head><title>teste</title><script language="JavaScript">function FormataValor(campo,tammax,teclapres) {var tecla = teclapres.keyCode;vr = document.form[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.form[campo].value = vr; }if ( (tam > 2) && (tam <= 5) ){document.form[campo].value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 6) && (tam <= 8) ){document.form[campo].value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 9) && (tam <= 11) ){document.form[campo].value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 12) && (tam <= 14) ){document.form[campo].value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }if ( (tam >= 15) && (tam <= 17) ){document.form[campo].value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam );}}}function checkPrefix (obj) {  val = obj.value;  if (val.length > 0)	if (val.substring(0,2) == 'R$') obj.value = val.substring(2,obj.value.length);}</script></head><body><form method="POST" name="form"><p><input type="Text" name="valor" size="23" maxlength="17" onKeyDown="FormataValor('valor', 13, event)" onBlur="this.value='R$'+this.value" onFocus='checkPrefix(this)'></p></form></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Acho que consegui resolver o problema do backspace no Firefox, usando a função txtBoxFormat().

 

Trocando...

 

if(document.all) { // Internet Explorer		nTecla = evtKeyPress.keyCode;	  } else if(document.layers) { // Nestcape		nTecla = evtKeyPress.which;	  }

...por...

 

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;		}	  }

O que essa alteração faz é identificar o Firefox (adicionando esse terceiro caso) e simplesmente retornando true quando o usuário digita o backspace.

 

Talvez haja alguma forma mais elegante de verificar que é o Firefox, mas assim parece funcionar bem.

 

 

Um abraço,

 

Cássio Bobsin Machado

Human Mobile :: Torpedos SMS

www.human.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tinha umas coisas desnecessárias... modifiquei de novo.

if(document.all) { // Internet Explorer		nTecla = evtKeyPress.keyCode;	  } else if(document.layers) { // Nestcape		nTecla = evtKeyPress.which;		if (nTecla == 8) {		   return true;		}	  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

O.oevtKeyPress.which; não é o evento do FF?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, será que ninguem noto que a função da erro!tente sair do campo com o shift+tab e voltar com o tab e digitar qualquer numeroo numero digitado vai pra frente do valor e nao pra tras! se alguem achar uma resposta pra isso, favor me passar!"

Compartilhar este post


Link para o post
Compartilhar em outros sites

a de formatação de valores!

a que ta no site do correio tem esse erro tb!

eu já axei um site que funcionava tudo! passo em todos os meus testes!

mas o cara nao coloco o fonte, e ta como "include" as funções! ai acabo comigo! sem chance de plagiar ele! hehehehehehe http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif/>

 

todas as funções aqui dao erro (em formatação de valores, de moeda)

umas delas, corta a execução de outras funções no comando onblur ou onchange! a outra quando tu entra no campo por tab, e digita, um numero vai pra frente os outros pra tras!

alguem resolveu esses porblemas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

script do alves persiste o erro

sair do campo com tab ou shift+tab e retornar com tab/shif+tab!

entederaum?

tenta da um tab! nao vai funcionar, caso tu coloque a função no onkeypress o tab volta a funcionar

OK um problema a menos

ai você faz assim

sai do campo com shift+tab, e depois da um tab!

vai retornar no mesmo campo com ele todo em azul (marcado)

ai voce aperta em qualquer tecla NUmÉRICA!

pronto, vai o primero numero pra frente o resto pra tras

ex: se estava com 2.355,60

e eu apertei o 3 e o 7 nesta ordem ficou

323.556,07

 

resolve isso?

:D/> http://forum.imasters.com.br/public/style_emoticons/default/joia.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, será que ninguem noto que a função da erro!tente sair do campo com o shift+tab e voltar com o tab e digitar qualquer numeroo numero digitado vai pra frente do valor e nao pra tras! se alguem achar uma resposta pra isso, favor me passar!"

Isso é óbvio! É uma questão de mandar o foco para o local correto! Adapte lá para nós! :)/>
ótimo se tu der conta de fazer isso adapta intao!to a 3 semanas tentando resolver esse problemanosso sistema é ERP e numeros é nossa prioridade, pode ter certeza que tentando a gente tá!nao adianta, formatação ta dificil!se alguem puder realmente ajudar agradeço e muito

Compartilhar este post


Link para o post
Compartilhar em outros sites

é verdade! problema solucionado!

grande trabalho ai da equipe!

valeu mesmo o empenho de voces! obrigadao ai!

isso q torna o forum um lugar bom para tirarmos duvidas!

se alguem tiver outras soluções vamos postar ai! acabar de vez com problemas de jscript

abraçoss http://forum.imasters.com.br/public/style_emoticons/default/joia.gif/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

=Papesar de odiar mecher com unidades monetarias, foi legal brincar com esse ai...o interessante foi a forma que achei pra resolver ele.acho que em outras ocasiões eu iria demorar seculos pra pensar nela.abraços, t+ ^^

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.