Ir para conteúdo

POWERED BY:

Arquivado

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

Aprendiz CSS

[Resolvido] Formatar input text

Recommended Posts

opa!

 

esse código funciona na boa, porem o problema está quando vou passando pelos campos por "tab".

 

quando eu digito o valor, ele não entende que o lugar dele é no final e coloca na frente, repare que no val1 funciona, mas no val2 não funciona

 

segue o código javascript e um html de exemplo

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<title> JavaScript </title>
	<script type="text/javascript">
		function formatarOnKeyUp(OBJ){
		/*********************************************************************************
			formatarOnKeyUp( objeto );
			Exemplo de como chamar a função:
				<input type="text" name="text" value="! validar !" onkeyup="formatarOnKeyUp(this);">
		***********************************************************************************/
		  var decimal,inteiro;
		  var i,count;
		  STR = new String(OBJ.value); 
		  STR = tirarZerosEsquerda(STR);
		  inteiro='';
				if (STR.length == 1){
					  inteiro  = '0';
					  decimal = '0' + STR;
					}
					else { 
					  if (STR.length == 2){
						  inteiro  = '0';
						  decimal = STR;
						}
						else{
						  decimal = STR.substring(STR.length-2,STR.length);
						  i=3;
						  count=0;
						  while (i<=STR.length){
					 		if (count==3) {
							  inteiro = '.' + inteiro;
							  count = 0;
							}
						    inteiro = STR.charAt(STR.length-i) + inteiro;
							count++;
							i++;
						  }
						}
					}
		    
		  
				if (inteiro == '') {
				  inteiro = '0';
				}
		  
				if (decimal == '') {
				  decimal = '00';
				}
				OBJ.value = inteiro+','+decimal;
		  
		}


		function tirarZerosEsquerda(STR){

		  var sAux='';
		  var i=0;
		  STR=new String(STR);
		  
		  while (i < STR.length ){
		    if ((STR.charAt(i)!='.') && (STR.charAt(i)!=',')){
			  sAux += STR.charAt(i);
		    }
			i++
		  }
		  
		  
		  STR = new String(sAux);
		  sAux = '';
		  i=0;
		  
		  while (i < STR.length ){
		    if (STR.charAt(i) != '0'){
		      sAux = STR.substring(i,STR.length)
			  i = STR.length;
			}
		    i++;
		  }
		  
		  return  sAux;
		}

	</script>
</head>
<body>
	<form id="f" action="" method="post">
		Val1: <input type="text" name="val1" id="val1" value="0,00" onkeyup="formatarOnKeyUp(this)"; />
		Val2: <input type="text" name="val2" id="val2" value="0,00" onkeyup="formatarOnKeyUp(this)"; />
	</form>
</body>
</html>

http://www.phpaulo.com.br/forum/imasters/exemplo.html

 

PS: isso só ocorre no IE

 

alguém sabe como me ajudar nisso?

 

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.