A FUNÇÂO:
function Formata(campo,tammax,teclapres,decimal) { var tecla = teclapres.keyCode; vr = Limpar(campo.value,"0123456789"); tam = vr.length; dec=decimal if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; } if (tecla == 8 ) { tam = tam - 1 ; } if ( tecla == 8 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) { if ( tam <= dec ) { campo.value = vr ; } if ( (tam > dec) && (tam <= 9) ){ campo.value = vr.substr( 0, tam - 6 ) + "," + vr.substr( tam - 6, tam ) ; } if ( (tam >= 10) && (tam <= 12) ){ campo.value = vr.substr( 0, tam - 9 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ;} if ( (tam >= 13) && (tam <= 15) ){ campo.value = vr.substr( 0, tam - 12 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ; } if ( (tam >= 16) && (tam <= 18) ){ campo.value = vr.substr( 0, tam - 15 ) + "." + vr.substr( tam - 15, 3 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ; } if ( (tam >= 19) && (tam <= 21) ){ campo.value = vr.substr( 0, tam - 18 ) + "." + vr.substr( tam - 18, 3 ) + "." + vr.substr( tam - 15, 3 ) + "." + vr.substr( tam - 12, 3 ) + "." + vr.substr( tam - 9, 3 ) + "," + vr.substr( tam - 6, tam ) ;} } }
No FORM
<td> <input type="text" name="vlcota" maxlength="20" onKeydown="Formata(this,20,event,6)" style='text-align:right; border:1px solid black; font-size:9pt; font-weight:bold; color: #000088; width:120px; height:20px;'> <font face="Arial" size="-6" color="#000009"><b>Valor máximo: 9.999.999,999999</b></font></td>
O que está errado no código da função que está causando esse erro na formatação durante a digitação ?
Desde já agradeço pela atenção.