Bonsoir,

J'ai encore un autre souci qui me gene pas mal!!
J'ai dans l'ordre de gauche à droite sur une ligne :


une liste deroulante , un champ texte grisé , un champ texte grisé qui se rempli en fonction de la valeur saisi dans la liste deroulante

Je decide d'activer mon champ du milieu pour une saisie dès que le champ le plus à droite (le dernier) est rempli c'est à dire dès que j'ai saisi une valeur dans ma liste deroulante

Le souci c'est que un choix dans la liste deroulante la touche tab ne m'active pas le champ du milieu .. je suis obligé de cliquer sur le coté puis aller dans le champ

Pour ce faire j'appelle une fonction d'activation de champ2 grace à un onBlur du champ1 (ou se trouve ma liste deroulante ) ...
j'espere avoir été clair!

ça fait pas mal de temps que je patauge alors si vous aviez qques minutes à m'accorder ce serait super sympa!!

merci !!
Modifié par ephemR (18 Mar 2006 - 23:10)
Hello,

ephemR a écrit :

Le souci c'est que un choix dans la liste deroulante la touche tab ne m'active pas le champ du milieu .. je suis obligé de cliquer sur le coté puis aller dans le champ

Je ne comprend pas très bien ce que tu veux dire par là. Est ce que ton problème vient du fait que le champ du milieu ne s'active pas lorsque tu enlèves le focus de ta liste avec la touche tab ou est ce un autre problème?

ephemR a écrit :

Pour ce faire j'appelle une fonction d'activation de champ2 grace à un onBlur du champ1...

Tu peux peut être essayer d'utiliser la fonction javascript onchange sur la liste déroulante. Ainsi, ton champ du milieu s'activera lorsque tu auras séléctionné un élement dans la liste.

Sinon, n'hésite pas à mettre un petit bout de code pour voir la méthode que tu utilises et voir si tout est correct.

Voila, et désolé de ne pas pouvoir t'aider plus Smiley decu .
QuentinC a écrit :

Non ! Surtout pas onchange ! Ceux qui naviguent au clavier, vous en faites quoi ?

Justement, cela n'a aucune incidence sur les personnes qui naviguent au clavier. Je ne voit pas où est le problème. Il suffit de choisir la valeur dans la liste et de la valider avec Entrée et l'événement onchange se déclanchera alors.
ymhotepa a écrit :

Justement, cela n'a aucune incidence sur les personnes qui naviguent au clavier. Je ne voit pas où est le problème. Il suffit de choisir la valeur dans la liste et de la valider avec Entrée et l'événement onchange se déclanchera alors.


Merci pour tes réponses c'est sympa
Alors j'ai essayé en mettant un onchange donc ça marche super bien pour le cas où j'ai une liste déroulante (avec une balise <select>)
de ce genre là :

<td>
				 Debut: <input type="text" id='debut'/>
		
			</td>
			<td>
			     
				 Code: <SELECT id="couleur" name="couleur" onchange="return activeChamp()">
							<OPTION VALUE="b">bleu
							<OPTION VALUE="r">rouge
							<OPTION VALUE="n">noir
					   </SELECT>
	
			</td>
			<td>
				      
					<label> milieu: </label><input type="text" name="milieu" id='milieu' disabled="true"/>
		
			</td>
			<td>
				
				Fin : <input type="text" name="codeLibelle" size="40"/>
			</td>
avec :
function activeChamp (){
		document.getElementById('milieu').disabled=false;
	
}


Si je me place dans le champ début que je fais 'tabulation' je choisis une valeur dans la liste grace à la flèche du bas puis je fais tabulation, mon champ milieu s'active .. fantastique

Par contre, j'ai un autre cas à la place du <select> j'ai un champ texte et selon la saisie que je commence à faire une drop down apparait avec les valeurs possibles (grace à Ajax), là je choisi toujours grace à la flèche du bas puis 'tabulation' .... mais là il va dans le champ fin - le champ milieu n'est activé que si clique sur l'ecran ;
Une idée ?

erci bcp en tt cas Smiley smile
ymhotepa a écrit :

Justement, cela n'a aucune incidence sur les personnes qui naviguent au clavier. Je ne voit pas où est le problème. Il suffit de choisir la valeur dans la liste et de la valider avec Entrée et l'événement onchange se déclanchera alors.

Ah ben si !! Justement...
Supposes que tu aies 10 éléments dans ta liste et que tu veuilles sélectionner le 8ème au clavier. Tu vas naviguer jusqu'à ta liste avec des "TAB", puis tu vas descendre avec la flèche jusqu'à la 8ème option...
Et si tu as mis un "onchange", il va se déclencher inutilement sur les 7 premières options. Je te laisse imaginer le bordel...
Conclusion : ne jamais utiliser OnChange...
Mpok a écrit :

Et si tu as mis un "onchange", il va se déclencher inutilement sur les 7 premières options. Je te laisse imaginer le bordel...

Désolé de te contredire mais l'événement onchange sur une liste déroulante se déclanche seulement si tu as "validé" ta séléction avec Entrée. Ainsi tu peux naviguer dans ta liste déroulante sans déclancher le onchange.

Voici un lien pour vous en convaincre : ici
ymhotepa a écrit :

Désolé de te contredire mais l'événement onchange sur une liste déroulante se déclanche seulement si tu as "validé" ta séléction avec Entrée. Ainsi tu peux naviguer dans ta liste déroulante sans déclancher le onchange.

Bon, comme je ne l'utilise jamais, j'avais pas fait de test ! Smiley biggrin

Donc, sous Firefox 1.5, ok, pas de problème...
Mais pas sous IE5.5 !! Sous IE5.5, ça marche comme je l'ai spécifié, c'est à dire mal.
As-tu fait le test sous IE6.0 ? (je n'ai pas mon IE6.0 sous la main pour tester moi-même pour l'instant)

Précision : même sous FF, le fait de sortir de la liste (sans faire Entrée, avec un Tab par exemple) déclenche AUSSI l'évènement, ce qui signifie que l'on a pas le droit de "changer d'avis" (sortir de la liste sans changer l'état).
Mpok a écrit :

Mais pas sous IE5.5 !! Sous IE5.5, ça marche comme je l'ai spécifié, c'est à dire mal.

J'avais complétement oublié de le tester sous IE. Je me suis dis : "Ca marche sous Firefox, donc c'est bon pour les autres navigateur". Smiley smash . A c'est malin ca Smiley murf !

Sinon, pour IE6, même problème que sous IE5.5, ca ne fonctionne pas correctement. Je suis complètement désapointé Smiley mur .

Mpok a écrit :

Précision : même sous FF, le fait de sortir de la liste (sans faire Entrée, avec un Tab par exemple) déclenche AUSSI l'évènement, ce qui signifie que l'on a pas le droit de "changer d'avis" (sortir de la liste sans changer l'état).

Je suis d'accord avec toi quand tu dis que le fait d'utilisé Tab déclenche l'événement Smiley prie . Par contre, sortir de la liste sans changer l'état ne déclenche pas l'événement, enfin à priori Smiley nono Smiley biggrin .

Enfin bon, je crois que la conclusion est qu'il faut faire attention à l'utilisation de l'événement onchange sans non plus le bannir. Smiley cligne
a écrit :

Désolé de te contredire mais l'événement onchange sur une liste déroulante se déclanche seulement si tu as "validé" ta séléction avec Entrée. Ainsi tu peux
naviguer dans ta liste déroulante sans déclancher le onchange.

C'est valable uniquement pour firefox. Ce qui n'est pas logique, d'ailleurs.

a écrit :

Conclusion : ne jamais utiliser OnChange...

Je n'irais pas jusque là : parfois, ça peut être pratique.

J'ai écrit un petit truc là-dessus [url=http://quentinc1.free.fr/ref/aut/Formulaires_-_Les_listes_deroulantes_et_l'evenement_onchange/]par ici[/url]. Je parle plus des submit automatiques sur onchange, mais ça s'applique également ici. N'utiliez onchange que quand vous êtes sûr que ça n'a pas d'influence sur la position du focus.