Ir para conteúdo

POWERED BY:

Arquivado

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

CambeX

Problemas com função Js no IE

Recommended Posts

Bom pessoal, to usando um javascript num Onblur de um textbox pra transformar o campo em monetário.

A função de conversão funciona 100% no FF mas no IE ela sempre retorna como se a expressão do textbox fosse inválida!

 

ai vai o JS:

function monetaryFormat(num) {

	x = 0;

   	if(num.value < 0) {
		num.value = Math.abs(num.value);
		x = 1;
	}
   
	var valida = num.value;
   	var contadorvirgulas = 0;
   	
   	if(valida == "")
   		return valida;
   	
	for(var i = 0; i < valida.length; i++) {
		if(valida[i] == ',')
			contadorvirgulas++;
		if(contadorvirgulas > 1) {
			document.frmrecibo.importancia.value = "";
			mostraDialogo(Ferramentas.recuperamensagemsistema(85));
			return valida = "";
		}
		if(!(validaImportancia(valida[i]) || (valida[0] == 'R' && valida[i] == '.' && contadorvirgulas == 0))) {
			document.frmrecibo.importancia.value = "";
			mostraDialogo(Ferramentas.recuperamensagemsistema(85));
			return valida = "";
		}
	}
   
   	num.value = num.value.replace(/,/ , ".");

   	if(isNaN(num.value)) num.value = "0";
	
	cents = Math.floor((num.value*100+0.5)%100);

   	num.value = Math.floor((num.value*100+0.5)/100).toString();

   	if(cents < 10) cents = "0" + cents;
		  for (var i = 0; i < Math.floor((num.value.length-(1+i))/3); i++)
		 	num.value = num.value.substring(0,num.value.length-(4*i+3))+'.'
			   +num.value.substring(num.value.length-(4*i+3));

   	ret = num.value + ',' + cents;

   	if (x == 1) ret = ' - ' + ret;
   
   	ret = 'R$ ' + ret;
   
   	return ret;
}

e como ele eh usado

this.value=monetaryFormat(this)

testem e vejam o que acontece!!

tem solução!?!?!?

vlw

abraços

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.