Récupérer le focus dans un formulaire

Eléphant du PHP | 130 Messages

19 févr. 2007, 20:11

Salut,

J'ai un petit problème avec mon formulaire. Le formulaire appele l'objet XMLHttpRequest lorsque je clique sur le bouton Submit. Et du coup je perd le focus. Comment faire pour récupérer le focus dans le champ texte apres l'envoi du formulaire ? J'ai essayé d'ajouter une ligne de code au script javascript mais ça ne fonctionne pas.

Code : Tout sélectionner

document.formulaire.mesinfos.focus();
Je sais utiliser onLoad mais celui ci ne permet pas de conserver le focus dans le champ text.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 12:25

bah si tu cliques sur un bouton, c'est normal que ce soit lui qui prenne le focus :) Ton instruction pour le rendre au champ est bonne si le nom de ton formulaire est "formulaire" et que ton champ s'appelle bien "mesinfos".

Quant à l'appel il suffit de le faire après l'action induite par le clique sur le bouton, ou simplement à la récupération du résultat renvoyé par le XMLHttpRequest :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 130 Messages

20 févr. 2007, 18:43

Merci Ryle ça marche. Je n'avais pas mis la ligne dans la fonction.

C'est presque parfait, il me reste un problème. Je veux également que lorsque j'appuie sur la touche enter du clavier, celle ci provoque un reset sur le champ texte tout en conservant le focus.

Mais pour l'instant j'ai pas trouvé de solution. J'ai essayé ce qui suit. Je conserve le focus dans tous les cas maintenant. Sauf que je voudrais que le champ texte s'efface aussi lorsqu'on valide le formulaire avec la touche enter du clavier.

Code : Tout sélectionner

xhr.open('POST', 'traitement.php', true); xhr.onreadystate........... xhr.send(null); onSubmit=document.formulaire.mesinfos.focus();

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 févr. 2007, 18:57

Code : Tout sélectionner

document.formulaire.mesinfos.value = '';
;)

Ce que tu peux faire, c'est sur le onSubmit appeller une fonction dans laquelle tu enchaineras vidage du champ et focus :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

20 févr. 2007, 19:13

Au poil. Je regrette juste de pas y avoir penser tout seul. Je cherchais un truc compliquer alors que c'était tellement simple. :lol:

Merci encore Ryle.

Eléphant du PHP | 130 Messages

20 févr. 2007, 19:15

Au poil. Je regrette juste de pas y avoir penser tout seul. Je cherchais un truc compliqué alors que c'était tellement simple.

Merci encore Ryle. Euh oui c'était moi l'invité... :lol:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

20 févr. 2007, 19:20

Il n'est pas nécessaire de répéter les compliments destinés à Ryle.

Ce n'est qu'un oiseau... :twisted: :lol: