<SCRIPT language=JavaScript>
function retiraZero(numero) {
novoNumero = "";
aux = "";
for(i=0;i<numero.length;i++){
if(numero.charAt(i) == "0" || numero.charAt(i) == ",") {
continue;
}else{
zeroDireita = true;
novoNumero += numero.charAt(i);
}
if(zeroDireita){
if (numero.charAt(6) == "0"){
novoNumero += numero.charAt(6);
}
if (numero.charAt(5) == "0" && numero.charAt(6)=="0"){
novoNumero += numero.charAt(6);
}
if (numero.charAt(4) == "0" && numero.charAt(5)=="0" && numero.charAt(6)=="0"){
novoNumero += numero.charAt(6);
}
/*if (numero.charAt(2) == "0" && numero.charAt(4) == "0" && numero.charAt(5)=="0" && numero.charAt(6)=="0"){
novoNumero += numero.charAt(6);
}*/
}
}
if(novoNumero.length == 3){
novoNumero = novoNumero.charAt(0) + "," + novoNumero.substr(1,2);
}
else if(novoNumero.length == 4){
novoNumero = novoNumero.substr(0,2) + "," + novoNumero.substr(2,2);
}
else if(novoNumero.length >= 5){
novoNumero = novoNumero.substr(0,3) + "," + novoNumero.substr(3,6);
}
return novoNumero;
}
function formataPorcentagem(texto){
num = texto.value;
num = retiraZero(num);
if(num > 100) {
num = 100;
}
if(num.length == 1) {
texto.value = "000,0" + num;
}
if(num.length == 2) {
texto.value = "000," + num;
}
if(num.length == 4) {
texto.value = "00" + num;
}
if(num.length == 5) {
texto.value = "0" + num;
}
if(num.length == 6) {
texto.value = num;
}
if (num.length == 7){
texto.value = num.substr(0,6);
}
}
</script>
<INPUT onkeyup="return formataPorcentagem(this)" size=8 maxlength="7"> <br>
A ideia dele era a seguinte: de acordo com o numero que eu digitava ele ia colocando ele com duas casas decimais ou 100,00. Ex:
digitou 1 -> 00,01
digitou 2000 -> 20,00
digitou 2010 -> 20,10
digitou 10000 -> 100,00
alguem tem uma solução para resolver este problema ou simplesmente uma melhoria para o código acima?


