Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/09/2006, 10:47
Avatar de Developer9
Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años, 7 meses
Puntos: 47
El código es mucho y no lo entiendo bien, solo se que a mi textbox del servidor debo añadirle en el keypress esta función, pero si en vez de escribir numeros presiono el enter pasa algo raro, se me refresca la pagina. Y no quiero que pase eso. La función es la siguiente:

Código:
function currencyFormat(fld, milSep, decSep, e,limite,decimales) { 
if (fld.value.length>limite)
	return false;
    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) 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(decimales==2)
   {
    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); 
	 }
   } 
   else
   {
	if (len == 0) fld.value = ''; 
    if (len == 1) fld.value = '0'+ decSep + '000' + aux; 
	if (len == 2) fld.value = '0'+ decSep + '00' + aux; 
    if (len == 3) fld.value = '0'+ decSep + '0' + aux; 
	if (len == 4) fld.value = '0'+ decSep + aux; 
	
    if (len > 4) { 
     aux2 = ''; 
     for (j = 0, i = len - 5; 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 - 4, len); 
	}
   }
    return false; 
  }
Y lo que yo le hago es ponerle la siguiente linea:

Código:
Me.txtCostoUnitairo.Attributes.Add("OnKeyPress", "javascript:return(currencyFormat(this,'','.',event,10,2));")
Y aunque me siento raro pidiendote ayuda a voz.... Gracias