Bonjour,
J'ai un problème au sujet de l'autocomplete via jQuery.
J'ai suivi le tutoriel de ce site : http://blog.arnaud-k.fr/2009/04/28/t...jquery-et-php/.
Tout fonctionne parfaitement lorsqu'il n'y a qu'un seul champ sur lequel on veut appliquer l'autocomplete.
Mon problème est lorsqu'il y a deux (ou plus) champs.
Je ne rencontre pas de problème sur la méthode lookup, lorsque j'entre les premières lettres, la liste générée apparaît bien sous le textfield.
Le problème se situe au niveau de la méthode fill().
Le site propose cette méthode quand il n'y a qu'un champ à autocomplete :
Et comme élément HTML correspondant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function fill(thisValue) { // remplir le champ texte si une suggestion est cliquée $('#inputString').val(thisValue); setTimeout("$('#suggestions').hide();", 200); }
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <input type="text" size="30" value="" id="inputString" /> <div class="suggestionsBox" id="suggestions" style="display: none;"> <div class="suggestionList" id="autoSuggestionsList"><!-- liste contenant les suggestions --></div> </div>
De mon côté j'ai deux champs text :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <input type="text" size="30" value="" id="A" /> <div class="suggestionsBox" id="suggestionsA" style="display: none;"> <div class="suggestionList" id="autoSuggestionsListA"><!-- liste contenant les suggestions A--></div> </div> <br><br> <input type="text" size="30" value="" id="B" /> <div class="suggestionsBox" id="suggestionsB" style="display: none;"> <div class="suggestionList" id="autoSuggestionsListB"><!-- liste contenant les suggestions B--></div> </div>
J'ai essayé plusieurs possibilités sur la méthode fill() comme :
Mais ça ne marche pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function fill(thisValue) { if (document.getElementbyId('A').value != null) { $('#inputStringA').val(thisValue); setTimeout("$('#suggestionsA').hide();", 200); } else if (document.getElementbyId('B').value != null) { $('#inputStringB').val(thisValue); setTimeout("$('#suggestionsB').hide();", 200); } }
J'ai essayé de créer deux méthodes du genre :
En appelant bien sûr fill2() sur le onblur du textField B.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function fill(thisValue) { $('#inputStringA').val(thisValue); setTimeout("$('#suggestionsA').hide();", 200); } function fill2(thisValue) { $('#inputStringB').val(thisValue); setTimeout("$('#suggestionsB').hide();", 200); }
Mais fill2() n'est pas appelé.
Si quelqu'un a une idée je suis preneur car je tourne en rond depuis quelques jours jours...
Merci.
Partager