Dúvida JavaScript

2 respostas
dahenz

Boa tarde pessoal!

Estou com uma dúvida em uma função javascript que estou usando em minha aplicação.
Essa função tem por finalidade formatar strings numéricas em valor fracionário, na qual funciona perfeitamente no FireFox, porém no Internet Explorer não.

Como faço para que funcione em ambos os browsers????

Segue o código:

function reais(obj,event){

	var whichCode = (window.event) ? event.which : event.keyCode;

	if (whichCode == 8 && !documentall) {	
		if (event.preventDefault){		

			event.preventDefault();
			

			} else { 

				event.returnValue = false;

				}

		var valor = obj.value;
		var x = valor.substring(0,valor.length-1);
		obj.value= demaskvalue(x,true).formatCurrency();

		return false;

	}
	
	FormataReais(obj,'.',',',event);

	return false;
}

2 Respostas

Pedrosa

http://javascript.internet.com/forms/auto-currency.html

F

Eu precisei de uma função desta essa semana e peguei no site de um banco.

// Formata o campo valor
function formataValor(campo) {
	campo.value = filtraCampo(campo);
	vr = campo.value;
	tam = vr.length;

	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 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
 	if ( (tam >= 9) && (tam <= 11) ){
 		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) ){
 		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 <= 18) ){
 		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 ) ;}
 		
}
// limpa todos os caracteres especiais do campo solicitado
function filtraCampo(campo){
	var s = "";
	var cp = "";
	vr = campo.value;
	tam = vr.length;
	for (i = 0; i < tam ; i++) {  
		if (vr.substring(i,i + 1) != "/" && vr.substring(i,i + 1) != "-" && vr.substring(i,i + 1) != "."  && vr.substring(i,i + 1) != "," ){
		 	s = s + vr.substring(i,i + 1);}
	}
	campo.value = s;
	return cp = campo.value
}

É só chamar a função da seguinte maneira 'onkeyup="formataValor(this);"'

eu usei esta e resolveu o meu problema.

Criado 21 de janeiro de 2009
Ultima resposta 21 de jan. de 2009
Respostas 2
Participantes 3