Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/11/2011, 08:09
Avatar de Rappa
Rappa
 
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 6 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