Pedrosa 21 de jan. de 2009
Fernando_Melo 21 de jan. de 2009
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.