Автозаполнение и Geonames: можно ли получить город, штат и страну в отдельных полях ввода? - PullRequest
1 голос
/ 18 октября 2011

В настоящее время я использую одно поле INPUT для запуска автозаполнения пользовательского интерфейса jQuery, который извлекает данные из Geonames.

$( "#city_state_country" ).autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: "http://ws.geonames.org/searchJSON",
            dataType: "jsonp",
            data: {
                featureClass: "P",
                style: "full",
                maxRows: 6,
                name_startsWith: request.term
            },
            success: function( data ) {
                response( $.map( data.geonames, function( item ) {
                    return {
                        label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                        value: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                    }
                }));
            }
        });
    },
    minLength: 3,
    select: function( event, ui ) {
        log( ui.item ?
            "Selected: " + ui.item.label :
            "Nothing selected, input was " + this.value);
    },
    open: function() {
        $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
    },
    close: function() {
        $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
    }
});

Так что, если я начну печатать "Босто"

это дает мне

Boston, Massachusetts, United States

Но я бы хотел иметь отдельные поля INPUT для города, штата и страны - и каждое из них с автозаполнением, подключенным к Geonames, возвращало только предложения для города, штата, страны соответственно.

Итак, набрав:

"Bost" in the city INPUT would provide "Boston".
"Massa" in the state INPUT would provide "Massachusetts".
"United St" in the state INPUT would provide "United States".

Возможно ли это?

Я экспериментировал с изменением name_startsWith на другие опции , но не получил то, что ожидал.

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Согласно документации, http://www.geonames.org/export/web-services.html, вы не можете

0 голосов
/ 19 января 2016

Вы можете сделать это, используя этот URL - пример: api.geonames.org/postalCodeSearchJSON?placename_startsWith=dehi&country=LK&username=demo

будет генерировать результат для ввода, который вы дали.

...