Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Seguinte gente, estou usando essa função de formatar para moeda:
function formatar_moeda(campo, separador_milhar, separador_decimal, tecla) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
if(document.all) { // Internet Explorer
var whichCode = tecla.keyCode; }
else if(document.layers) { // Nestcape
var whichCode = tecla.which;
} else if(document.getElementById) { // FireFox
var whichCode = tecla.which;
}
//var whichCode = (window.Event) ? tecla.which : tecla.keyCode;
if (whichCode == 39) return true; // Tecla Direita
if (whichCode == 37) return true; // Tecla Esquerda
if (whichCode == 13) return true; // Tecla Enter
if (whichCode == 8) return true; // Tecla Delete
key = String.fromCharCode(whichCode); // Pegando o valor digitado
if (strCheck.indexOf(key) == -1) return false; // Valor inválido (não inteiro)
len = campo.value.length;
for(i = 0; i < len; i++)
if ((campo.value.charAt(i) != '0') && (campo.value.charAt(i) != separador_decimal)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(campo.value.charAt(i))!=-1) aux += campo.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) campo.value = '';
if (len == 1) campo.value = '0'+ separador_decimal + '0' + aux;
if (len == 2) campo.value = '0'+ separador_decimal + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += separador_milhar;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
campo.value = '';
len2 = aux2.length;
for (i = len2 - 2; i >= 0; i--)
campo.value += aux2.charAt(i);
campo.value += separador_decimal + aux.substr(len - 2, len);
}
return false;
}
Nem lembro mais de quem é os créditos, me desculpe o criador...xD
Também fiz uns ajustes mas nada que comprometa...
Dai o seguinte....eu digito: 1
No campo fica: 0,011
Apertando de novo '1' fica: 1,111
E assim por diante....
E ai gente? No firefox funciona de boa.....
Não sei mais o que fazer.....
Ja percebi que acontece após o keypress...tipo, ele lança o valor formatado corretamente, e depois joga noivamente a tecla digita..
Doidera..
Aguardo respostas gente...valewwwww
Carregando comentários...