Pb javascript focus() sur un element en display:none

Pb javascript focus() sur un element en display:none - HTML/CSS - Programmation

Marsh Posté le 13-02-2007 à 10:07:22    

Bonjour j'ai un probleme au niveau de mon javascript.
 
Au chargement de ma page, (onload) je lance une fonction main qui charge un objet contenant tous les champs de ma page.
 

Code :
  1. //*************** INITIALISATION DE L'ECRAN
  2. function main()
  3. {
  4. // Formulaire de recherche rapide
  5. form_recherche = new formRecherche();
  6. }
  7. //**************************************** LES ACTIONS DE L'ECRAN********************************"******************
  8. function active_desactive_date_transfert()
  9. {
  10. form_recherche.active_desactive_date_transfert();
  11. }  
  12. ...
  13. ...
  14. //**************************************** LES OBJETS DE L'ECRAN*********************************"******************
  15. //Objet correspondant au formulaire  
  16. function formRecherche() {
  17. this.f        = document.forms.quickSearch;
  18. this.nom_enseigne     = document.forms.quickSearch.nom_enseigne;
  19. ......
  20. this.nom_enseigne.focus();
  21. this.active_desactive_ALL();
  22. }
  23. formRecherche.prototype.active_desactive_date_transfert = function ()
  24. {  
  25. if (this.transfert_isa_pro_oui.checked){
  26.  this.span_date_transfert.style.display   = 'inline';
  27.  this.apres_date_transfert.disabled=false;
  28.  this.avant_date_transfert.disabled=false;
  29. }
  30. else{
  31.  this.span_date_transfert.style.display   = 'none';
  32.  this.apres_date_transfert.disabled=true;
  33.  this.avant_date_transfert.disabled=true;
  34. }
  35. }
  36. ....
  37. formRecherche.prototype.active_desactive_ALL = function ()
  38. {  
  39. this.active_desactive_GRM();
  40. this.active_desactive_IEC();
  41. this.active_desactive_date_update();
  42. this.active_desactive_date_transfert();
  43. }


Le probleme est que lorsque je recharge ma page et que "this.span_date_transfert.style.display   = 'none'" le "this.nom_enseigne.focus()" ne fonctionne pas, donc je voudrais savoir si il y avait une methode pour faire 'Si l'objet existe -> focus sinon rien'


Message édité par Alisteroid le 13-02-2007 à 10:08:28
Reply

Marsh Posté le 13-02-2007 à 10:07:22   

Reply

Marsh Posté le 13-02-2007 à 17:43:11    

aidez moi :/ :'(

Reply

Marsh Posté le 14-02-2007 à 00:07:21    

Code :
  1. if (this.nom_enseigne) this.nom_enseigne.focus()
 

mais là c'est que ton objet existe.

 

Après comme on a aucun bout de code utile j'extrapole et j'imagine que lorsque ton truc span_date_transfert est none, le focus d'un éléménet à l'interieure ne fonctionne pas.

 

Donc il suffit de savoir si l'élément sur lequel tu veux attaquer un focus a une consistance physique au sein de la page :

Code :
  1. if (this.nom_enseigne && this.nom_enseigne.offsetHeight>0) { 
  2.   this.nom_enseigne.focus()
  3. }


Message édité par gatsu35 le 14-02-2007 à 00:07:59
Reply

Marsh Posté le 14-02-2007 à 00:42:59    

Merci beaucoup, je suis pas un as en js et franchement j'ai un peu honte pour le " if (this.nom_enseigne) ", je pensais pas que ca marchait en js

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed