Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2010, 10:07
Avatar de bacdavi
bacdavi
 
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 11 meses
Puntos: 7
Formato decimales

hola amigos!

Tengo un pequeño malentendido con un script que encontré en este foro!

Necesito que al ingresar un numero automáticamente tome formato decimal separado por puntos (.).

El script es el siguiente:

Código:
function currencyFormat(fld, milSep, decSep, e) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	if (whichCode == 13 || whichCode == 8 || whichCode == 9) return true; // Enter
		key = String.fromCharCode(whichCode); // Get key value from key code
	if (strCheck.indexOf(key) == -1) return false; // Not a valid key
		len = fld.value.length;
	for(i = 0; i < len; i++)
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
	aux = '';
	for(; i < len; i++)
		if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
	aux += key;
	len = aux.length;
	if (len == 0) fld.value = '';
	if (len == 1) fld.value = '0'+ decSep + '0' + aux;
	if (len == 2) fld.value = '0'+ decSep + aux;
	if (len > 2) {
		aux2 = '';
		for (j = 0, i = len - 3; i >= 0; i--) {
			if (j == 3) {
				aux2 += milSep;
				j = 0;
			}
			aux2 += aux.charAt(i);
			j++;
		}
		fld.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--)
		fld.value += aux2.charAt(i);
		fld.value += decSep + aux.substr(len - 2, len);
	}
	return false;
}
Código HTML:
<input name="TXTamount" type="text" id="TXTamount" value=""  maxlength="8" onkeypress="return(currencyFormat(this,'','.',event))"> 
El script funciona genial en eso del formato pero necesito que el monto máximo sea 99999.99, y al probar el script me deja meter cualquier cantidad como le hago para limitar que solo se ingrese la cantidad máxima indicada??

Muchas Gracias por la ayuda!