Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2007, 08:54
EfrainSanmiguel
 
Fecha de Ingreso: diciembre-2005
Mensajes: 51
Antigüedad: 18 años, 4 meses
Puntos: 0
Pregunta Mascara de entrada numerica

Ante todo un saludo,
Podría alguien ayudarme con lo siguente:
Necesito hacer que cada vez que escriba un monto por ejemplo 1574412.963 en una caja de texto al transcribirlo automaticamente se coloque asi:15.744.120,96 , es decir crear una mascara de entrada para la caja, ya lo he intentado creando una clase en php y llamandola a traves de un javascript, asi me quedo el codigo:
Código PHP:
<?php
class mascaranumeros
 
{
     function 
formato($numero,$cantDec,$moneda,$sepMil=true){
         
$posPunto strrpos($numero".");  //obtengo la pos del punto (separador de decimales
         
         
if($posPunto===false){
             
//no tiene decimales
             
return $moneda." ".(($sepMil)?numeros::sepMil($numero):$numero);
         }else{
             
//tiene decimales
             
$num explode(".",$numero);
             
$entera = ($sepMil)?numeros::sepMil($num[0]):$num[0];
             
$decimal = ($cantDec)?numeros::sepDec($num[1],$cantDec):"";
             return 
$moneda." ".$entera.$decimal;
         }
     }
     
     function 
sepMil($numero){
         return 
strrev(wordwrap(strrev($numero),3,".",1));
     }
     
     function 
sepDec($numero,$cantDec){
         
$cant strlen($numero);
         if(
$cant 2)
             return 
",".substr($numero,0,$cantDec);
         elseif(
$cant<2)
             return 
",".$numero."0";
         else
             return 
",".$numero;
     }
 }
 
?>
Código HTML:
<body>
<form method="post">
    <label>
   <input name="moneda" type="text" id="moneda" onblur="return colocarmascara(this);" />
   </label>
    <p>
      <label></label>
   </p>
 </form>
 <script language="javascript" type="text/javascript">
function colocarmascara(){
<?php
$valor=mascaranumeros::formato($_POST[moneda],2,""); 
?>
 document.getElementById('moneda').value="<?php echo $valor; ?>"
</script>
</body> 
este codigo me funciona pero luego que recargo la pagina para q se ejecute el metodo post, si alguien puede ayudarme con esto le agradezco de ante mano