JQuery автозаполнение удаленного источника данных JSON не возвращает данные - PullRequest
5 голосов
/ 26 декабря 2011

Я всегда работал над этим, искал все другие примеры и до сих пор не могу понять это, пытаясь использовать jquery ui autocomplete, впервые пытаясь собрать все это вместе.Вот мой JS:

$(document).ready(function () {
$("#search-title").autocomplete({
    source: function ( request, response ) {
        $.ajax({
            url: "/include/autocomplete",
            dataType: "json",
            data: {
                        term: request.term      
                    },
            success: function (data) {
                response( $.map( data.stuff, function ( item ) {
                    return {
                        label: item.name,
                        value: item.name
                    };
                }));
            }
        });
    },
    minLength: 2,
    focus: function (event, ui) {
        $(event.target).val(ui.item.label);
        return false;
    },
    select: function (event, ui) {
        $(event.target).val(ui.item.label);
        window.location = ui.item.value;
        return false;
    }
});
});

Проверяя Ответ в Firebug, я думаю, что получаю правильно отформатированный JSON здесь:

{"stuff":[ {"label" : "Dragon", "value" : "http://site.com/animal/firebreathers"}] }

Но по какой-то причине он не подключается.После того, как я нажму minLength, под полем поиска откроется небольшое пустое поле, но там ничего не будет.

ОБНОВЛЕНИЕ: Когда я добавлю "alert (item);"в ответном вызове я получаю окно с надписью «На странице site.com написано: объект Object» - может ли это быть проблемой?

Ответы [ 2 ]

2 голосов
/ 26 декабря 2011

Я наконец-то понял это благодаря комментарию подсказки под моим вопросом.

В ответе, который я скопировал с сайта UI Jquery, у меня было:

label: item.name,
value: item.name

Изменениечто до:

label: item.label,
value: item.value

Решил мою борьбу с jQuery.Я понятия не имею, если это хорошая практика, но она, наконец, работает!

0 голосов
/ 26 декабря 2011

попробуйте использовать jsonp вместо json в типе данных.

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