Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/09/2008, 17:43
stakabrown
 
Fecha de Ingreso: diciembre-2003
Mensajes: 5
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: Separar Numero , en parte entera y parte decimal

/*================================================= =======
Función que permite capturar una cantidad diciendole cuantos enteros y cuantos decimales permitir
Cuando ha llegado al límite no deja escribir; evalúa las condiciones en cada teclazo.
Autor: Roberto CDM - [email protected]
================================================== ========
Recibe los parámetros:
e => evento click,
ent => # enteros deseados -considerar el punto-
dec => # decimales deseados
*/


function EntDecimal(e,ent,dec)

//Esto permite que solo capturen números y el '.'
chars= "1234567890.";
e = window.event;
if(chars.indexOf(String.fromCharCode(e.keyCode))==-1) window.event.keyCode=0;

//En cada teclazo evalúa lo que tiene tu textbox
var num;
num = document.entry.txtLogin.value;

//Extraemos la parte entera var cantidad = num.split(".");
var entero = cantidad[0];

//Validamos que no pase de la cantidad deseada
if (entero.length >= ent){
return (window.event.keyCode=0);}

//Saco la parte decimal para compararla si ya superó el límite permitido
var t=num+"";
num = parseFloat(t.substring(0,(t.indexOf(".")+dec+1)));
var res;
var pos = t.toString().indexOf(".");

if (pos == -1){
res = String(0);
}else{
res = String(t).substring((pos+1), t.length);}

//Si aún es menor al límite, te deja avanzar
if (res.length <= dec-1){
return (num);}
else{ //Cuando es igual o ya se pasó no te deja escribir más allá
return (window.event.keyCode=0);}
}
</SCRIPT>

HTML:

<form name="entry" action="Default.aspx" method="post">
Capture una cantidad de hasta 3 enteros y 5 decimales (ver código fuente):<br/><br/>
<input name="txtLogin" type="text" onKeyPress="EntDecimal(event,4,5);"/>
</form>

Última edición por stakabrown; 11/09/2008 a las 09:33