2010-04-06 31 views
27

Pregunta: ¿Cómo se puede utilizar el JQuery Auto-Completion plugin sugerir una ubicación ("City, State") para un campo de entrada?JQuery: ¿Cómo autocompletar "Ciudad, estado"?

Significado, alguien quiere escribir "Chicago, IL" ... para que comience a escribir "Chi" y se auto-sugerencias "Chicago, IL".

Mis mayores obstáculos es encontrar un servicio que puedo consultar para averiguar todos los nombres de las ciudades + estatales de Estados Unidos.

que esencialmente quiere hacer lo que las "etiquetas" stackoverflow formulario de entrada obras, sino formar "ciudad, estado" auto completado.

Respuesta

2

O se necesita para hacer un ajax California ll al servidor cada vez que se presiona una tecla para actualizar el menú desplegable "autocompletar", o incluir una matriz de todas las posibles cadenas de "estado de la ciudad" y filtrarlas cuando se presiona una tecla.

38

Hay un grupo llamado GeoNames que ofrece tanto bases de datos descargables como servicios web gratuitos para obtener este tipo de datos. Por ejemplo, la búsqueda

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

devolverá un manojo de JSON que incluye Chicago, IL (propiedades JSON incluyen, entre otros, "name": "Chicago" y "adminCode1": "IL").

Ocurre que los jQuery UI usan esta fuente de datos para demo of autocomplete. (Gracias NickT por el enlace).

+0

¡Muy bueno! Gracias, @JacobM :) –

+10

Muy bueno, encontré entonces la integración oficial en el siguiente enlace -> http://jqueryui.com/demos/autocomplete/#remote-jsonp – NickT

+2

@NickT Deberías aceptar esta respuesta si tú ' Todavía estoy por aquí. Reconocer :-) –

1

@Teleport ofrece una API to search cities by name, por ejemplo .: https://api.teleport.org/api/cities/?search=San,%20United%20States%20of%20America devuelve San Antonio, San Diego, San José y San Francisco. También puede pasar el estado, p. https://api.teleport.org/api/cities/?search=San,%20Tex,%20United%20States%20of%20America solo devuelve San Antonio. Y también puede buscar por códigos de puertos (por ejemplo, SFO) y otros "alias".

También hay un widget de autocompletar para esta API disponible en https://github.com/teleport/autocomplete

Revelación: Yo trabajo para Teleport.

EDITAR: Agregó el sufijo "de América" ​​en el término de búsqueda "Estados Unidos de América", ya que algunos otros países (Brasil, Venezuela) tienen formularios de nombre que coinciden con "Estados Unidos".

+0

¡Hola, excelente API! Una pregunta rápida, ¿la API de autocompletar es realmente gratuita? ¿Qué sucede si deseo utilizar esto para mi sitio ya que no puedo pagar una licencia de google places api? –

Cuestiones relacionadas