Bonjour à tous
J'ai deux champs text :
- id="autocomplete-cp" pour le code postal
- id="autocomplete-villes" pour le nom de la ville
Je veux qu'en tapant le code postal ou le début du nom d'une ville, dans n'importe lequel des 2 champs, ça recherche dans ma BDD et me propose les différentes villes.
pour ce faire je fait :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $(document).ready(function() { $('#autocomplete-cp').typeahead({ remote: './ajax/ajax_villes.php?debut=%QUERY', limit: 15 }); $('#autocomplete-villes').typeahead({ remote: './ajax/ajax_villes.php?debut=%QUERY', limit: 15 }); }); |
ça fonctionne super !
Sauf qu'au final dans mon champ "autocomplete-cp" par exemple, j'ai à la fois le code postale et la ville. Alors que je n'y veux que le code postal. Et de toute façon ça ne me rempli pas l'AUTRE champs.
Donc j'ai un peu bricolé :
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 | $(document).ready(function() { $('#autocomplete-cp').typeahead({ remote: './ajax/ajax_villes.php?debut=%QUERY', limit: 15 }); $('#autocomplete-cp').on('typeahead:selected', function (e, item) { var cp = item['value'].substr(0, 5); //Je sais ça bricole... var ville = item['value'].substr(6) $('#autocomplete-cp').val(cp); //je force la valeur du champs à "CP" uniquement et pas CP + VILLE $('#autocomplete-villes').val(ville); }); $('#autocomplete-villes').typeahead({ remote: './ajax/ajax_villes.php?debut=%QUERY', limit: 15 }); $('#autocomplete-villes').on('typeahead:selected', function (e, item) { var cp = item['value'].substr(0, 5); var ville = item['value'].substr(6) $('#autocomplete-cp').val(cp); $('#autocomplete-villes').val(ville); }); }); |
ça fonctionne toujours ! quand je valide une proposition :
je tape "75", il me propose "75000 PARIS", je prend, je tape "entrer" ça fait exactement ce que je lui demande : le champs autocomplete-cp prend la valeur du code postal uniquement, et le champs autocomplete-villes, prend la valeur de la ville. Impec !!
Sauf que dés que je "quitte" le champs (pour aller au suivant, numero de téléphone ou autre…) ben mon champ CP reprendre la valeur "75000 Paris" au lieu de "75000" tout court.
et si je quitte le champs "autocomplete-villes" (dans lequel je n'ai rien tapé encore), celui-ci se vide tout seul… j'ai bien tenté un .focusout(), mais la remise en place de la valeur "75000 Paris" se fait APRES le focusout()…
Comment faire pour qu'à tout moment je n'ai que mon code postal dans le champs code postal, et que la ville dans mon champ ville ?
Merci !!