Вопрос по javascript – Google Places JavaScript Автозаполнение: могу ли я удалить страну из названия места?

10

У меня есть следующий код JQuery, который хорошо работает с получением списка городов для выбранной страны.

var city;   var place;

$('#city').on('focus',function(){
    input = this, options = {
        types: ['(cities)'],
        componentRestrictions: {
            country: $('#country option:selected').val()
            }
    };
    city = new google.maps.places.Autocomplete(input, options);
    google.maps.event.addListener(city, 'place_changed', function() {
        place = city.getPlace();
        $(input).val(place.address_components[0].long_name);
    })
})

Обычно, когда человек выбирает место, он заменяет значение в поле ввода на «город». ценность без страны.

Это выглядит немного глупо, имеяCity, Country в раскрывающемся меню, когда пользователь уже выбрал страну, поэтому кто-нибудь знает, возможно ли отобразить просто название города, если вы определилиcomponentRestrictions ценность ограничения результатов для страны?

Я нахожу, что мой текущий метод установки, как только выбор сделан, немного ... на самом деле мусор ...

Я знаю, я настроил скрипты для других вопросов, НО с Google Places, API работает только на моем домене и, следовательно, потребует от меня перенастройки приложения. Это также использовало бы мой дневной лимит запросов, пока люди пробовали свой код! Andrew Willis
Раскрывающийся список генерируется Google. Кроме того, скриптовая часть кода не будет работать, и ссылка на мою страницу будет бесполезна, так как после устранения проблемы она не будет отображаться на странице, что делает вопрос бесполезным после того, как на него будет дан ответ для других пользователей. люди, желающие сделать что-то подобное Andrew Willis
Говоря в общем, можете ли вы редактировать то, что в выпадающем меню? Я имею в виду, если название страны известно,replace это из выпадающего списка отображаемой записи. Tina CG Hoehr
Я прочитал ваш вопрос несколько раз, и я не чувствую, что полностью понимаю, что вы описываете. Я думаю, может быть, если бы вы включили некоторую разметку, это дало бы вопрос некоторый контекст и помогло бы всем понять. Или может быть ссылка на вашу страницу или пример на jsFiddle? Sean Mickey
@ AndrewWillis Здесь очень часто люди делятся ссылками или настраивают jsFiddle, чтобы более глубоко взглянуть на вещи и поделиться идеями. После этого процесса обычно добавляют последующие комментарии или исправления вопросов / ответов, чтобы быть уверенными, что то, что было извлечено из этого процесса, сохранено на благо всех. Если вы не хотите делиться ссылкой или настраивать jsFiddle, это круто, но кому-то сложно понять детали того, чего вы хотите достичь, или в чем может быть причина вашей проблемы. Если вы попробуете, я гарантирую, что вы увидите больше активности по этому вопросу. Просто пытаюсь помочь Sean Mickey

Ваш Ответ

4   ответа
3

Краткий ответ: содержание ответа вAutocomplete контролируется Google (вы упомянули об этом в одном из ваших комментариев) иAutocompleteapi-doc не обеспечивает способ настройки отображаемого текста ответа, кромеchanging the placeholder textdev-guide, Решение, которое вы используете, - это лучший вариант, который у вас есть (и он немного реактивный, но я не знаю, действительно ли это "мусор").

Кроме этого, если вы менее чем удовлетворены таким подходом, вы всегда можете просто создать свою собственную область ввода и полностью контролировать запрос-ответ. Вы можете использовать библиотеку местdev-guide непосредственно и получить полный контроль над всем, что показано.

18

При вызове Google API укажите атрибут & quot; регион & quot ;:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false&key=your_key&language=fr&region=FR"></script>

Затем, когда вы создаетеAutocomplete указать страну в полеcomponentRestriction атрибут, чтобы он отражал регион, который вы указали:

    new google.maps.places.Autocomplete(
        $("#my-input-field").get(0),
        {
            componentRestrictions: {country: "fr"},
            types: ["(regions)"]
        }
    );

Работает сregion=US для меня!
Это новая функция API Карт Google? Я разместил этот вопрос почти два года назад! Andrew Willis
У меня тоже не получилось. : /
К сожалению, это не работает для США. Но другие, кажется, в порядке.
не работал для меня.
5

Также вы можете помочь себе, скрыв последний интервал (= состояние) в элементе автозаполнения.

.pac-item > span:last-child {
    display: none;
}
Поскольку это скрывает страну и штат, это не решение во многих случаях, когда во многих штатах есть города с одинаковыми названиями. Например, в США в четырех штатах есть город под названием Независимость.
1

Я жду 100 миллисекунд, а затем заменяю текстовое поле желаемым содержимым.

За исключением моего случая, я хочу пустое поле, но вставить один пробел.

Похожие вопросы