2010-04-06 14 views
27

Domanda: Come è possibile utilizzare JQuery Auto-Completion plugin per suggerire una posizione ("City, State") per un campo di input?JQuery: Come completare automaticamente "Città, Stato"?

Significato, qualcuno vuole digitare "Chicago, IL" ... in modo da iniziare a digitare "Chi" e si auto-suggestioni "Chicago, IL".

I miei più grandi ostacoli è trovare un servizio che posso interrogare per scoprire tutti i nomi delle città + di Stato USA.

io essenzialmente voglio fare ciò che il "Tag" StackOverflow opere modulo di input, ma formare "Città, stato" completamento automatico.

risposta

2

vi sia bisogno di fare un ajax circa ll al server ogni volta che viene premuto un tasto per aggiornare il menu a tendina "completamento automatico", o includere una matrice di tutte le possibili stringhe "città-stato" e filtrarle quando viene premuto un tasto.

38

C'è un gruppo chiamato GeoNames che offre sia database scaricabili che servizi web gratuiti per ottenere questo tipo di dati. Ad esempio, la ricerca

http://ws.geonames.org/searchJSON?name_startsWith=Chic&country=US 

restituirà un mucchio di JSON che include Chicago, IL (proprietà JSON includono, tra gli altri, "name": "Chicago" e "adminCode1": "IL").

Come accade, l'utente di jQuery UI ha utilizzato questa origine dati per un demo of autocomplete. (Grazie Nick per il collegamento).

+0

Molto bello! Grazie, @JacobM :) –

+10

Very Cool, ho trovato l'integrazione ufficiale al link qui sotto -> http://jqueryui.com/demos/autocomplete/#remote-jsonp – NickT

+2

@NickT Dovresti accettare questa risposta se tu " stai ancora in giro. Riconoscere :-) –

1

@Teleport offre una API to search cities by name, ad es .: https://api.teleport.org/api/cities/?search=San,%20United%20States%20of%20America restituisce San Antonio, San Diego, San Jose e San Francisco. Puoi anche passare lo stato, ad es. https://api.teleport.org/api/cities/?search=San,%20Tex,%20United%20States%20of%20America restituisce solo San Antonio. E puoi anche cercare per codici di aeroporto (ad esempio SFO) e altri "alias".

C'è anche un widget di completamento automatico per questa API disponibili presso https://github.com/teleport/autocomplete

Disclosure: io lavoro per Teleport.

MODIFICA: aggiunto il suffisso "d'America" ​​nel termine di ricerca "Stati Uniti d'America", poiché alcuni altri paesi (Brasile, Venezuela) hanno forme di nomi che corrispondono a "Stati Uniti".

+0

Hey, ottima API! Domanda veloce, però, l'API di autocomplete è veramente gratuita? Cosa succede se voglio utilizzare questo per il mio sito poiché non posso permettermi una licenza API di Google Places? –

Problemi correlati