Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/04/2011, 16:26
ocp001a
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: script solo funciona en IE

Mira si te sirve esta funcion que yo uso (la modifiqué de una que encontré por ahí)

Código Javascript:
Ver original
  1. function number_format(num,formato) {
  2. num = num.toString().replace(/\$|\,/g,'');
  3. if(isNaN(num))
  4. num = "0";
  5. sign = (num == (num = Math.abs(num)));
  6. num = Math.floor(num*100+0.50000000001);
  7. cents = num%100;
  8. num = Math.floor(num/100).toString();
  9. if(cents<10)
  10. cents = "0" + cents;
  11. for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
  12. num = num.substring(0,num.length-(4*i+3))+','+
  13. num.substring(num.length-(4*i+3));
  14. if(formato=="moneda")
  15.     return (((sign)?'':'-') + '$' + num + '.' + cents);
  16. if(formato=="decimal")
  17.     return (((sign)?'':'-') +  num + '.' + cents);
  18. if(formato=="entero")
  19.     return (((sign)?'':'-') +  num );
  20. else
  21.     return (((sign)?'':'-') + '$' + num + '.' + cents);
  22. }

Su uso es muy sencillo:
<input type="text" name="mivalor" onchange="this.value=number_format(this.value,'dec imal');">

Así si el usuario no pone decimales la funcion los asigna en automático, y ya sólo necesitas comprobar que no exceda el valor que tu quieras.