Foros del Web » Programando para Internet » Javascript »

Saber si foco está en input

Estas en el tema de Saber si foco está en input en el foro de Javascript en Foros del Web. Buenas, necesito saber si el foco en una página está en input o no para si no lo está, hacer focus() a un form de ...
  #1 (permalink)  
Antiguo 16/11/2011, 14:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Saber si foco está en input

Buenas, necesito saber si el foco en una página está en input o no para si no lo está, hacer focus() a un form de búsqueda.

¿Cómo puedo saber si el foco está en un input?

Saludos!
__________________
:)
  #2 (permalink)  
Antiguo 16/11/2011, 15:06
 
Fecha de Ingreso: abril-2011
Mensajes: 76
Antigüedad: 13 años
Puntos: 1
Respuesta: Saber si foco está en input

perdon no entiendo tu pregunta que quieres decir?
  #3 (permalink)  
Antiguo 17/11/2011, 06:52
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Respuesta: Saber si foco está en input

En qué evento lo quieres detectar? con onload? onclick?
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #4 (permalink)  
Antiguo 17/11/2011, 07:51
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Saber si foco está en input

quiero hacer, onload hago focus() a un form y cuando pierde el foco ese form, si se pulsa una tecla buscar si hay algún input con foco, si no darselo al form principal
__________________
:)
  #5 (permalink)  
Antiguo 17/11/2011, 08:09
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Respuesta: Saber si foco está en input

Mira, el método focus() sirve para dar foco a un elemento.

Por otro lado están los eventos onfocus() y onblur() que sirven para disparar funciones cuando un elemento gana o pierde foco respectivamente.

No encontré ninguna propiedad que diga si un elemento tiene el foco o no.

Se me ocurre que podrías tener una variable global booleana que esté en true al principio cuando haces onfocus cuando carga la página y que TODOS los campos de los formularios llamen funciones que cambien la variable esa cuando ganan y pierden foco.

Por ejemplo:

Código Javascript:
Ver original
  1. var HayFoco = true;
  2.  
  3. function GanoFoco(){
  4.    HayFoco = true;
  5. }
  6.  
  7. function PierdoFoco(){
  8.    HayFoco = false;
  9. }
  10.  
  11. function RevisoFoco(){
  12.    if(!HayFoco){
  13.        document.getElementById("primerimput").focus();
  14.    }
  15. }


Luego

Código HTML:
Ver original
  1. <body onKeyUp="RevisoFoco();">
  2. ...
  3. ...
  4. <input type="text" id="input_n" onFocus="GanoFoco();" onBlur="PierdoFoco();">
  5. ...

El tema cuando pasas de un input a otro es ver qué sucede primero, si el onBlur del que dejas o el onFocus del que clickeas.

Chequéalo y me dices.
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #6 (permalink)  
Antiguo 17/11/2011, 08:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 1.242
Antigüedad: 13 años, 5 meses
Puntos: 73
Respuesta: Saber si foco está en input

¿Alguna función que diga donde se situa el foco actualmente?

Voy a probar con eso que me dijiste, lo haré en el focus del <form>
__________________
:)

Etiquetas: foco, input
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 08:37.