自动填充ajax请求

时间:2013-08-14 10:07:18

标签: jquery ajax jquery-autocomplete

我正在使用jquery ui自动完成功能。自动完成源来自ajax请求。 然后,当用户单击一个选项时,我发出了另一个ajax请求,以从服务器获取与该选项相关的数据。

Erveything工作正常,但在第二个ajax请求之后,当我在自动完成框中输入内容时,它会显示我在第二个请求中获得的数据。

第二个请求的数据覆盖第一个数据...

它显示占位符中第二个请求的结果。但是,在此之后,当您再次在自动填充中键入时,它会将成功请求中的数据作为其来源!最后一个数据被用作自动完成源!

你能帮我解决这个问题吗?

这是我的代码:

$("#sinput").autocomplete({
     source: function (request, response) {
                $.ajax({
                    type: 'GET',
                    url: 'Handlers/AutoCompleteHandler.ashx?type=html',
                    dataType: "json",
                    cache: false,
                    data: { term: request.term },
                    success: function (data) {

                        response($.map(data, function (item) {
                            return {
                                label: item.label,
                                id: item.value,
                            };
                        }));
                    },
                });
            },
            minLength: 3,
            select: function (event, ui) {
                var content_id = ui.item.id;
                $.ajax({
                    type: 'GET',
                    url: 'Handlers/GetContentHandler.ashx?id=' + content_id + '&type=html',
                    dataType: 'json',
                    cache: false,
                    success: function (data) {
                        $('#placeholder').html(data[0].label)
                    }
                });
            }
        });

1 个答案:

答案 0 :(得分:0)

从服务器返回第二个AJAX请求的数据时,请尝试使用其他名称而不是“label”。