Foros del Web » Programando para Internet » Javascript »

detectar ENTER en un textbox

Estas en el tema de detectar ENTER en un textbox en el foro de Javascript en Foros del Web. hola... alguien me podría decir como puedo detectar que pulsé un ENTER cuando estoy en un TextBox??? muchas gracias por su ayuda...
  #1 (permalink)  
Antiguo 31/08/2006, 09:08
 
Fecha de Ingreso: abril-2005
Mensajes: 58
Antigüedad: 19 años
Puntos: 0
detectar ENTER en un textbox

hola...

alguien me podría decir como puedo detectar que pulsé un ENTER cuando estoy en un TextBox???

muchas gracias por su ayuda
  #2 (permalink)  
Antiguo 31/08/2006, 09:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola alejandrotkd

Echa un vistazo a este código:
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
validar(e) {
  
tecla = (document.all) ? e.keyCode e.which;
  if (
tecla==13alert ('Has pulsado enter');
}
</script>
</head>
<body>
<input type="text" onkeypress="validar(event)" />
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 31/08/2006, 13:20
 
Fecha de Ingreso: abril-2005
Mensajes: 58
Antigüedad: 19 años
Puntos: 0
muchas gracias Javier
  #4 (permalink)  
Antiguo 13/09/2006, 10:12
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Hola JavierB... que tal, estoy en un caso similar, necesito saber cuando el usuario presionó enter, el tipo no puede presionar enter y necesito que no se acepte el enter. Pero a mi textbox ya le he asociado una función javascript que tengo en un archivo js para que me formatee los numeros a dos decimales.

Como puedo hacer para llamar a otra funcion llavaeskric en la que validaria el enter y si es enter no pase nada, todo esto antes de que se ejecute el onkeypress
  #5 (permalink)  
Antiguo 13/09/2006, 10:29
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Developer9

¿Ya estás usando el evento onkeypress? Pon el código para echarle un vistazo.

Saludos,
  #6 (permalink)  
Antiguo 13/09/2006, 10:47
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
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
  #7 (permalink)  
Antiguo 13/09/2006, 10:56
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Prueba esto:
Código:
function currencyFormat(fld, milSep, decSep, e,limite,decimales) {
tecla = (document.all) ? e.keyCode : e.which;
  if (tecla==13) return false; 
if (fld.value.length>limite)
	return false;
Saludos,
  #8 (permalink)  
Antiguo 13/09/2006, 10:58
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Eje!!!!! ya lo arreglé, me puse a ver el código de la función mas detenidamente y para que no me acepte el enter solo le cambié de true a false lo 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 false; // 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; 

   ...

}
Gracias por prestarme atención. Eso de javascript no me agrada mucho pero nos da funcionalidades que las podríamos hacer del lado del servidor pero lamentablemente con postback
  #9 (permalink)  
Antiguo 13/09/2006, 11:13
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Cita:
Iniciado por JavierB Ver Mensaje
Hola de nuevo.

Prueba esto:
Código:
function currencyFormat(fld, milSep, decSep, e,limite,decimales) {
tecla = (document.all) ? e.keyCode : e.which;
  if (tecla==13) return false; 
if (fld.value.length>limite)
	return false;
Saludos,
Gracias compañero tocayo... al parecer el código que teniamos era similar.

Cuando programes en ASP y necesiteis ayuda avisas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 09:39.