Bonjour ,
j'essaye de déclencher une action quand le champ input de l'autocomplete redevient vide
l'utilisateur via l'autocomplete saisie un mot dans une base de données ce qui déclenche un traitement annexe
Ensuite quand l'utilisateur coupe ou vide le champ de l'autocomplete je veux redéclencher ce traitement annexe
Je suis donc parti sur cette idée ,
je positionne minLength à 0 => minLength:0,
dans l'option source : je place cette condition
if(request.term=='' && tagFind!='') // si la requête de recherche est vide et que la dérnière recherche n'est pas vide
//équivalent à
if(request.term=='' && tagFind!=request.term)
Et ça marche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 $('#inpRec').autocomplete( { select:function(event,ui) { tagFind=ui.item.value; // tagFind est un des paramètres qui serviront au traitement annexe déclenchée par loadArts() loadArts(); }, minLength:0, // à zéro source:function(request,response){ if(request.term.trim()=='' && tagFind!='') { tagFind='';loadArts(); } if (request.term in cache){ response(cache[request.term]); return; } $.ajax({ url: "listTags2.php", dataType:"json", data:request, success: function(data){ cache[request.term]=data; response(data); } }); } ,close:function(){cache={};} });
mais il y'a un autre problème
en faisant ça je déclenche l'autocompletion à zero ,du coup quand le champ de recherche se retrouve vide cela me renvoi en suggestion tous les mots de la base de donnée ce qui fait que je me retrouve avec une liste de suggestion très longue
pour désactiver ce comportement qui ici ne sert à rien j'ai rajouté cette condition
La aussi ça fonctionne ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 if(request.term.trim()!='') // condition rajoutée (si le champ de recherche n'est pas vide) { if (request.term in cache){ response(cache[request.term]); return; } $.ajax({ url: "listTags2.php", dataType:"json", data:request, success: function(data){ cache[request.term]=data; response(data); } }); }
la recherche des suggestions n'est pas éfféctuée , par contre la liste des suggestions précédentes reste toujours en place ainsi que le gif animé symbolisant le chargement des données
exemple
vo
--------------------
voiture
voyage
v
--------------------
valise
vélo
voiture
voyage
[champ vide] (*) <= symbole d'attente de chargement + liste des mots commençant par v (l'idéal étant une liste vide)
--------------------
valise
vélo
voiture
voyage
donc c'est pas mal de bidouillage ,j'ai épluché la doc (peut être mal) et je n'ai pas trouvé de solution à ce problème
Merci donc pour vos conseils
Partager