Foros del Web » Programando para Internet » Javascript »

Problema detectando ENTER en FF3

Estas en el tema de Problema detectando ENTER en FF3 en el foro de Javascript en Foros del Web. Hola, el problema que tengo es el siguiente, tengo un textbox en un pagina que usa Ajax (no estoy usando ningun form por razones tecnicas) ...
  #1 (permalink)  
Antiguo 09/08/2008, 14:55
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Problema detectando ENTER en FF3

Hola, el problema que tengo es el siguiente, tengo un textbox en un pagina que usa Ajax (no estoy usando ningun form por razones tecnicas) y quiero que al presionar la tecla enter mientras el cursor este dentro de dicho textbox, se ejecute cierta funcion que funciona perfectamente.

Ya he googleado bastante para buscarle respuesta a este problema y aun no he podido conseguir algo concreto. He leido los temas de este foro de Javascript pero tampoco he conseguido solucion.

Aqui esta mi codigo:

Cita:
<head>
<script type="text/javascript">
function darle_enter(e){
if (event){
key=event.keyCode;
}else{
key=e.which;
}

if (key==13){
abrir_ventana();
}
}

</head>
<body>

<input type="text" id="buscar_texto" name="buscar_texto" onKeyPress="return darle_enter(event)" />

</body>


Nota: coloco onKeyPress con esas 2 letras en mayusculas porque si lo pongo en minusculas, en IE7 entra en la funcion darle_enter() pero en FF3 no entra en dicha funcion. Por eso uso onKeyPress y no onkeypress, para que la funciona sea llamada perfectamente por IE7 y FF3.

Por otra parte, me he dado cuenta que algunos han colocado en sus codigos algo como esto:

Cita:
if (navigator.appname=="netscape"){ key=e.which; }else{ key=event.keyCode; }
Me he dado cuenta que el:
- IE7 reconoce event.keyCode (todo mi codigo funciona bien aqui)
- FF3 NO reconoce event.keyCode ni e.which (mi codigo NO funciona aqui)
- Opera 9.27 reconoce event.keyCode en vez de e.which (todo mi codigo funciona bien aqui)
- Safari 3.1.2 reconoce event.keyCode en vez de e.which, aun cuando el navigator.appname es Netscape (todo mi codigo funciona bien aqui)

Espero una solucion a este engendro diabolico de problema.
  #2 (permalink)  
Antiguo 09/08/2008, 15:18
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Respuesta: Problema detectando ENTER en FF3

Problema resuelto, aqui el codigo, comprobado en IE7, FF3, Opera 9.27 y Safari 3.1.2:

Cita:
<head>
function darle_enter(e)
{
var keynum

if(window.event) // IE
{
keynum = e.keyCode
}
else // Netscape/Firefox/Opera
{
keynum = e.which
}

if (keynum==13){
alert("eso fue un ENTER");

}
}
</head>
<body>
<input type="text" onkeypress="return darle_enter(event)" />
</body>
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:53.