Maitrise du ONBLUR en javascript

Fermé
vixell Messages postés 23 Date d'inscription dimanche 29 décembre 2002 Statut Membre Dernière intervention 18 février 2009 - 29 juil. 2008 à 11:17
 Knightmare - 5 nov. 2008 à 13:03
Bonjour,

voici ma fonction :

function testID(maZone)
{

if(maZone.value==""){alert("Merci de renseigner la zone!");maZone.style.backgroundColor="red";document.getElementById(maZone).focus(); }
}

puis dans le BODY :

<td nowrap style="padding-left:1px;padding-right:1px;"><input type=text onkeypress="this.style.backgroundColor='white';" name=code id=code style="width:100px;" maxlength=13 onblur="testID(code);">
</td>
<td nowrap style="padding-left:1px;padding-right:1px;"><input type=text onkeypress="this.style.backgroundColor='white';" name=date value="<?echo date("d-m-Y");?>" onblur="testID(date);" id=date style="width:90px;" maxlength=13 datepicker="true" datepicker_format="DD-MM-YYYY">
</td>

Voilà mon Pb :

je suis dans la zone 'code", je ne saisi rien et j'utilise la touche TAB.
le ONBLUR se déclenche. la fonction est jouée mais le focus ne revient pas sur la zone "code" mais sur la zone de destination de la touche TAB.

idem si utilisation de la souris pour cliquer sur un autre input à la place de TAB...

Merci pour votre aide.

1 réponse

Ayant eu le même problème je viens de faire quelques recherches sur le net et j'ai trouvé une réponse qui fonctionne. En fait il suffit de retarder l'exécution du script avec la fonction setTimeout. Au final ça donnerait ça :

onblur="setTimeout('testID(code);', 1);"

La réponse est certes tardive mais ça pourra servir à d'autres.
1