La malédiction du focus/blur [Résolu]

Signaler
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
-
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
-
Bonjour,

Pour pallier à l'absence de fonction permettant de controler l'état focus ou blur d'un élément de formulaire, il est de coutume d'avoir un booléen que l'on passe de true à false et de false à true, genre :

Mais j'avoue donner ma langue à la marmotte, dans ce cas précis :
J'ai deux (un des deux à le focus) et je veux déclencher une fonction (qui met le display des deux input à none) quand les deux n'ont plus le focus.

Le problème est qu'avec le système précédant  on a :
[true,false] on démarre avec le focus sur le 1er input par exemple
[false,false] on vient de quitter le premier champ on est pour ainsi dire dans le vide pendant le onblur
[false,true] on est arrivé sur le deuxieme
[false,false] je quitte le deuxieme pour aller ailleurs
etc..
Bref , avec ce système on ne peut pas déclencher une fonction avec onBlur qui pourra controler la perte de focus définitive (dans le cas où on a cliqué en dehors des deux champs)

Voilà, j'espère ne pas avoir été trop confus !

Merci de vos suggestions

S
apakus

4 réponses

Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
3
Merci de ton aide, mais j'avais déja essayer comme ça. En fait le problème est que le onblur du champ que l'on quitte se déclenche avant le onfocus du champ sur lequel on va ! Mais j'ai une solution maintenant :
A chaque appel de la fonction on se retrouve à [false,false] sauf si on donne le temps à onfocus de passer sa variable à true avec un setTimeout:

<head>
<script type='text/javascript'>
var input1  = false;
var input2 = false;
function fct ()
{    if(input1 false && input2 false)
    {
        alert("ok");
    }
}
function Blur2() {
   setTimeout("fct();",200);
}
</script>
</head>

  
  

ouf !

S
apakus
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
Salut,

<head>
<script type='text/javascript'>
var input1  = null;
var input2 = null;

function Blur2() {   if(input1 false && input2 false) {
      ton code...
   }
}
</script>
</head>

   
   

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
alors met toi en réponse acceptée !

a++

Si la réponse vous convient, pensez : Réponse acceptée !
Messages postés
96
Date d'inscription
mercredi 20 août 2003
Statut
Membre
Dernière intervention
10 février 2011
3
Youpi !

a+

S
apakus