|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
Bonjour,
Actuellement j'ai un formulaire où l'utilisateur saisie une info dans un champ type text et en fonction de ce qu'il met, ça me rempli une liste de selection en dessous. Je déclenche mon script grâce à un évènement onkeyup placé sur le input type text. Le problème est que si l'utilisateur saisie "ab" par exemple, ça va déclencher un traitement pour la valeur du champ input "a", et ensuite en même temps un second traitement pour la valeur "ab". Du coup, ça me retourne dans la liste de sélection les résultats des deux traitement alors que je ne voudrai que celui du dernier. Comment peut-on faire cela ? merci |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : juin 2003 Messages : 766 ![]() |
Yop!
La solution est peut-être de travailler de façon synchrone. |
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : juillet 2007 Messages : 1 287 ![]() |
je proposerai plutot que tu appelle ajax le champ de saisie perd le focus.
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Inhibe l'envoi si la valeur du champ est d'une longueur de 1.
Sinon, utilises aussi un settimeout pour pouvoir empêcher l'envoi de la requête lors de la saisie des premiers caractères. En gros, tant que l'utilisateur utilises le clavier en continu, on ne fait rien, dès qu'il y a inactivité, on lance la requête.
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : avril 2006 Messages : 833 ![]() |
Merci pour vos réponses.
Pour l'instant, je me suis mis en mode synchrone mais va falloir que je regarde ta solution bovino. Mais je me demande ce qui se passera si je met un settimeout de 2s et que l'utilisateur attend 2.1s pour saisir a nouveau, est ce que le problème ne reste pas le même ? A voir les avantages et inconvénient de chaque méthode. N'étant pas trés doué en ajax, il va d'abord falloir que je regarde exactement ce que fait le mode synchrone pour comprendre les fonctionnements différents. encore merci |
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 828 ![]() |
Citation:
Sinon, oui il est sûr qu'il y aura toujours un moment de décalage... on ne peut pas y faire grand chose, c'est une des raisons pour lesquelles on met généralement un spinner pour indiquer que quelque chose se passe...
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com