Problème body onload focus sur FF4 et IE9

[Résolu]
Signaler
Messages postés
3
Date d'inscription
jeudi 9 août 2007
Statut
Membre
Dernière intervention
9 avril 2011
-
Messages postés
3
Date d'inscription
jeudi 9 août 2007
Statut
Membre
Dernière intervention
9 avril 2011
-
Bonjour à tous,
je viens de découvrir un problème nouveau sur firefox 4 et IE9
Avant j'avais un script avec dans la balise body :


Au rechargement de la page (après envoi du formulaire) le focus se mettait bien sur le bon champ.
Avec FF4 et IE9, rien ne va plus : la page se recharge mais le focus se fait sur la barre d'adresse ou ailleurs (je ne vois pas toujours où)

Pour info, j'ai essayé plusieurs syntaxes et je suis passé par une fonction pour voir si le onload était pris :
function donner_focus(chp){
  document.getElementById(chp).style.backgroundColor='#FF0000';
  document.getElementById(chp).focus();
}

dans mon j'ai alors mis :


le champ désigné passe bien en fond rouge (ce qui indique que onload est bien chargé à l'accès au script) mais le focus est perdu.

Quelqu'un aurait une piste sur la cause de ce problème et éventuellement la solution ?

2 réponses

Messages postés
3
Date d'inscription
jeudi 9 août 2007
Statut
Membre
Dernière intervention
9 avril 2011

Complément d'infos :
en réalité, la page se charge bien correctement avec le bon onload
le problème vient du type de validation du formulaire.
Ce système utilise une douchette usb pour code barre.
La douchette envoie automatiquement un TAB après la saisie du code et dans le formulaire j'ai donc un champ :


La tabulation saisie à la fin du code-barre valide donc le formulaire avec l'évènement "onblur".
Mais alors que cette tab n'était pas considérée dans les précédentes versions de navigateur, elle est prise en compte et donc positionne sur l'élément suivant.
Si je valide avec un chr(13) ça passe et le focus se fait correctement.
Je ne peux changer la programmation de la douchette qui doit toujours envoyer un TAB après saisie car elle doit rester compatible avec d'autres formulaires.
Puis-je intercepter le Tab (10) et le convertir en Enter (13) en js ?
(ce post n'a alors peut-être plus sa place dans cette partie du forum)
Messages postés
3
Date d'inscription
jeudi 9 août 2007
Statut
Membre
Dernière intervention
9 avril 2011

Ok, résolu!
En fait, l'ajout d'un champ de saisie vide après le champ du code barre récupère le focus avant la validation du formulaire.
La tabulation ne sort donc pas du formulaire et au reload le focus se fait bien.

Pardon pour le bruit...