Подтвердить что ты не робот

JQuery: Как автозаполнение "Город, штат"?

Вопрос. Как вы можете использовать плагин JQuery Auto-Completion, чтобы предложить местоположение ("City, State") для поля ввода?

Смысл, кто-то хочет ввести "Чикаго, Иллинойс" ..., поэтому они начинают печатать "Chi" и это автоматически предложения "Chicago, IL ".

Мои самые большие препятствия - найти сервис, который я могу запросить, чтобы узнать все названия городов США +.

Я по существу хочу сделать то, что работает форма ввода "Теги" StackOverflow, но создать автоматическое завершение "City, State".

4b9b3361

Ответ 1

Существует группа под названием GeoNames, которая предлагает загружаемые базы данных и бесплатные веб-службы для получения данных этого типа. Например, поиск

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

вернет кучу JSON, которая включает в себя Chicago, IL (свойства JSON включают, среди прочего, "имя": "Чикаго" и "adminCode1": "IL" ).

Как это происходит, пользовательский интерфейс jQuery использовал этот источник данных для демонстрации автозаполнения . (Спасибо NickT за ссылку).

Ответ 2

Вам нужно либо сделать вызов ajax на сервере всякий раз, когда нажата клавиша для обновления раскрывающегося списка "автоматически завершена", либо включает в себя массив всех возможных строк "город-состояние" и фильтрует их, когда ключ нажат.

Ответ 3

@Teleport предлагает API для поиска городов по имени, например: https://api.teleport.org/api/cities/?search=San,%20United%20States%20of%20America возвращает Сан-Антонио, Сан-Диего, Сан-Хосе и Сан-Франциско. Вы также можете передать состояние, например. https://api.teleport.org/api/cities/?search=San,%20Tex,%20United%20States%20of%20America возвращает Сан-Антонио. И вы также можете выполнять поиск по кодам aiport (например, SFO) и другим "псевдонимам".

Также есть виджет автозаполнения для этого API, доступный по адресу https://github.com/teleport/autocomplete

Раскрытие информации: я работаю в Teleport.

EDIT: добавлен суффикс "из Америки" в термине поиска "Соединенные Штаты Америки", поскольку некоторые другие страны (Бразилия, Венесуэла) имеют формы имен, которые соответствуют "Соединенным Штатам".